问题描述
我通过以下步骤在共享托管中实现了laravel队列:
1-我每分钟在主机上设置此CronJob:
* * * * * /usr/local/bin/PHP /home1/myuser/myfolder/artisan schedule:run >> /dev/null 2>&1
2-我在kernel.PHP上设置了此命令:
$schedule->command('queue:work --daemon')->withoutOverlapping();
我排队的工作进展顺利
我的问题是:完成队列后,是否有必要对“死”队列使用queue:restart laravel命令?
解决方法
您不必在队列结束后杀死它们(完成什么?)。队列工作者自动运行所有作业。您甚至不需要为此的调度程序。只需运行php artisan queue:work --daemon,一切就会自动发生。
我认为关键是当您更新laravel应用程序或队列工作程序由于某种原因(崩溃)而停止时。
关于更新: php artisan队列:工作--daemon 使用应用程序启动时的实例,就像 php artisan tinker 一样。如果您没有在更新之前停止队列,通常会在系统上以许多队列进程结束,因为该应用程序将在更新后启动新的队列进程。我不确定这些过程是否会造成损害,但是我会停止排队。我也鼓励您阅读https://laravel.com/docs/7.x/scheduling。
关于崩溃: 在我们公司,我们正在使用一项服务,以确保php artisan queue:work进程正在运行。这样做的好处是我们可以在更新时停止服务。
如果我错了,请纠正我。我以与OP相同的方式开始,这就是我现在才是:)