我在laravel安排了一份计划工作。
$ schedule-> command('my:command')-> everyFiveMinutes();
它运行良好,但是在维护后,偶尔会多次触发cron作业。在每次执行cron作业时都找不到此行为。
这是每5分钟正确触发一次。由于我们对数据库服务器进行了维护,因此我不得不使用php artisan down
将网站也置于维护模式。维护结束后,我做了php artisan up
。从那时起,偶尔会(一天一次或两天一次)触发cron作业,例如5或6次,而不是一次。然后在下一次运行中,它恢复正常(仅运行一次)。
Laravel版本5.4,服务器7.0的php版本。
答案 0 :(得分:0)
您必须知道Laravel任务不会在维护模式(https://laravel.com/docs/5.8/scheduling#maintenance-mode)中触发。
请确保您正在运行的任务在不到五分钟的时间内完成,如果您有长期运行的任务,则由于这些任务分配的时间不够,它们可能会被多次触发。
请记住,Laravel不会停止任务的运行,因此它无法停止任务并再次运行,这是系统管理员的职责,检查任务是否将在给定的时间范围内运行