Laravel バッチ

作成

自動生成

php artisan make:command Test

ファイル

<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;

class Test extends Command
{
 呼び出しコマンド
 protected $signature = 'command:test';
 protected $description = 'test';

 public function __construct()
 {
  parent::__construct();
 }

 public function handle()
 {
  return 0;
 }
}

実行

php artisan command:test

スケジュール

登録

※app/Console/Kernel.php
<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use App\Console\Commands\Test;

class Kernel extends ConsoleKernel
{
 protected $commands = [
  Test::class,
 ];

 protected function schedule(Schedule $schedule)
 {
  $logFilePath = storage_path('logs/test.log');

  $schedule
   ->command('command:test')
   ->daily()
   ->appendOutputTo($logFilePath);
 }

 protected function commands()
 {
  $this->load(__DIR__.'/Commands');
  require base_path('routes/console.php');
 }

}

メソッド
メソッド 機能
everyMinute() 毎分タスク実行
everyFiveMinutes() 5分毎にタスク実行
everyTenMinutes() 10分毎にタスク実行
everyFifteenMinutes() 15分毎にタスク実行
everyThirtyMinutes() 30分毎にタスク実行
hourly() 毎時タスク実行
hourlyAt(17) 一時間ごと、毎時17分にタスク実行
daily() 毎日深夜12時に実行
dailyAt('13:00') 毎日13:00に実行
twiceDaily(1, 13) 毎日1:00と13:00時に実行
weekly() 毎週実行
weeklyOn(1, '8:00') 毎週月曜日の8:00時に実行
monthly() 毎月実行
monthlyOn(4, '15:00') 毎月4日の15:00に実行
quarterly() 四半期ごとに実行
yearly() 毎年実行
timezone('America/New_York') タイムゾーン設定

Follow me!

前の記事

Laravel イベント

次の記事

AWS セキュリティ