laravel スケジューラを使った,定期実行

laravel, PHP, フレムワークlaravel

広告

定期実行で,php artisanコマンドを実行するために、これまで、crontabで設定をして実行するようにしていたが、スケジュールの情報をgitで管理できたほうが良いということで、laravelのスケジューラ機能を使うことにしました。

crontabの設定

以下のcrontabを設定する

* * * * * php {path/artisan} schedule:run >> /dev/null 2>&1

app/Console/Kernel.php の schedule メソッドに定期実行したい php artisanコマンドを記述する。

$schedule->command('emails:send --force')->daily();

このコードによって、emails:send –force というコマンドが毎日0時に実行されることになる.

メソッド

  • daily()
    毎日0時に実行される
  • hourly()
    毎時実行される
  • dailyAt()
    時刻指定で毎日実行される
  • weakly()
    毎週実行
  • monthly()
    毎月実行

広告