Q&A
前提
Laravel 8系を使用して、深夜帯に複数のバッチをタスクスケジュール+cronにて実行しています。
発生している問題
今回、一部バッチの実行時間を変更したところ、変更したスケジューラのみが実行されなくなりました。
変更したのは実行時間のみで、処理内容のプログラムやcronに修正は一切加えておりません。
該当のソースコード
以下が修正したKernel.phpの例になります。
schedule関数のみを抜粋しておりますが、以下の command:C
の実行時間を 3:00
→ 4:00
に変更したのみです。
A、Bは正常に実行され、またCは元の実行時間の 3:00
にも実行はされません。
PHP
1class Kernel extends ConsoleKernel 2{ 3 ・・・・ 4 protected function schedule(Schedule $schedule) 5 { 6 $schedule->command('command:A')->dailyAt('0:00')->runInBackground(); 7 $schedule->command('command:B')->dailyAt('2:00')->runInBackground(); 8 $schedule->command('command:C')->dailyAt('4:00'); 9 } 10・・・・
試したこと
キャッシュ周りが影響しているものと考え、以下のキャッシュクリアコマンドを実行しました。
php artisan cache:clear php artisan config:clear
また、 php artisan schedule:list
にてスケジューラリストを確認する限りには、 3:00
→ 4:00
の変更が反映されております。
+----------------------------------------+-------------+-------------+----------------------------+ | Command | Interval | Description | Next Due | +----------------------------------------+-------------+-------------+----------------------------+ | '/usr/bin/php' 'artisan' command:A | 0 0 * * * | | 2022-09-18 00:00:00 +09:00 | | '/usr/bin/php' 'artisan' command:B | 0 2 * * * | | 2022-09-18 02:00:00 +09:00 | | '/usr/bin/php' 'artisan' command:C | 0 4 * * * | | 2022-09-18 04:00:00 +09:00 | +----------------------------------------+-------------+-------------+----------------------------+
時間帯の変更を反映させるためには、何か他のコマンド実行等が必要になりますでしょうか。
ご回答いただけますと幸いです。