Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Larvel计划任务被多次触发_Php_Laravel_Laravel 5.4 - Fatal编程技术网

Php Larvel计划任务被多次触发

Php Larvel计划任务被多次触发,php,laravel,laravel-5.4,Php,Laravel,Laravel 5.4,我在拉拉维尔有一个cron任务 $schedule->command('my:command')->everyFiveMinutes() 它运行得很好,但在维护之后,cron作业偶尔会被触发多次。在每次运行cron作业时都找不到此行为 每5分钟正确触发一次。由于我们的DB服务器维护,我不得不使用php artisan down将网站也置于维护模式。一旦维护结束,我就启动了php artisan。从那时起,偶尔(每天一次或两天一次)会触发cron作业5到6次,而不是一次。然后在下一次运行中,它会恢

我在拉拉维尔有一个cron任务

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

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

每5分钟正确触发一次。由于我们的DB服务器维护,我不得不使用
php artisan down
将网站也置于维护模式。一旦维护结束,我就启动了php artisan。从那时起,偶尔(每天一次或两天一次)会触发cron作业5到6次,而不是一次。然后在下一次运行中,它会恢复正常(只运行一次)


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

您必须知道,在维护模式下不会触发Laravel任务()

确保您正在运行的任务完成时间少于五分钟,如果您有长时间运行的任务,则这些任务可能会被多次触发,因为为这些任务分配的时间不够


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

是否尝试检查crontab?使用crontab-l | grep-i“my:command”我面临着同样的问题,您是否曾经找出您案例中可能的原因。是的,这是一个小任务。我创建了一个带有timetamps列的表,该表为每次运行作业添加一个条目,以监视创建的_at列。事实证明,这个特定实例的cron作业(被多次调用)在应该运行之前就已经运行了。例如:上午11点06分,cron作业运行了5次。在表中的列中创建了2019-06-25 11:10:29和2019-06-25 11:10:28。同样,此作业恰好在上午11:10运行,在2019-06-25 11:10:02列创建。您确定您的
时间戳与服务器时间同步吗?因此,您在PHP中使用的时区与服务器时区不同。如何检查?如果你能帮忙的话。对不起,我是新手。没问题,只要确保你的服务器有正确的时区,我不知道你的服务器,所以你必须谷歌它。之后,确保Laravel的
时区
与服务器的时区相匹配,这可以通过
config/app.php
通过在
timezone
键中设置正确的时区来实现。我的服务器时间设置为BST,其中Laravel时区参数为UTC。这会引起问题吗?这些都是从一开始的配置,在我做了一个php artisan down和一个php artisan up之后,这个问题才发生了一个月