Laravel安排的任务被多次触发

时间:2019-06-25 08:35:53

标签: php laravel laravel-5.4

我在laravel安排了一份计划工作。

  

$ schedule-> command('my:command')-> everyFiveMinutes();

它运行良好,但是在维护后,偶尔会多次触发cron作业。在每次执行cron作业时都找不到此行为。

这是每5分钟正确触发一次。由于我们对数据库服务器进行了维护,因此我不得不使用php artisan down将网站也置于维护模式。维护结束后,我做了php artisan up。从那时起,偶尔会(一天一次或两天一次)触发cron作业,例如5或6次,而不是一次。然后在下一次运行中,它恢复正常(仅运行一次)。

Laravel版本5.4,服务器7.0的php版本。

1 个答案:

答案 0 :(得分:0)

您必须知道Laravel任务不会在维护模式(https://laravel.com/docs/5.8/scheduling#maintenance-mode)中触发。

请确保您正在运行的任务在不到五分钟的时间内完成,如果您有长期运行的任务,则由于这些任务分配的时间不够,它们可能会被多次触发。

请记住,Laravel不会停止任务的运行,因此它无法停止任务并再次运行,这是系统管理员的职责,检查任务是否将在给定的时间范围内运行