所以,在我的Commands/Kernel.php
中,我有这个:
$schedule->command('queue:restart')->everyFiveMinutes();
$schedule->command('queue:work')->everyMinute()->withoutOverlapping();
应该为supervisor
模拟一个queue:work
,在我的cron工作中,我有这个:
cd path/to/my/project && php artisan schedule:run >> /dev/null 2>&1
按照文档中的要求运行每个* * * * *
,但是它每次都会生成一个进程,因此我认为->withoutOverlapping()
不能正常工作。
但是,我在同一项目的同一服务器上的另一个项目中具有相同的代码,并且运行良好,并且两个项目均为Laravel 6.x
项目,因此我可以想象这可能是一些缓存文件或锁定问题。想法?
嗯...结果证明php artisan cache:clear
删除了所有锁,我将Artisa::call('cache:clear')
作为我的schedule
方法的第一行,该方法每次都删除该锁...删除它,它可以解决所有问题] >