需要 queue:restart laravel 命令吗?

is queue:restart laravel command necessary?

我通过以下步骤在共享主机中实现了 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 queue:work --daemon 使用应用程序启动时的实例,例如 php artisan tinker 也一样。如果您在更新前不停止队列,您通常会在系统上结束许多队列进程,因为应用程序将在更新后启动新队列。我不确定这些过程是否会造成任何损害,但我会停止排队。我还鼓励您阅读 https://laravel.com/docs/7.x/scheduling.

关于崩溃: 在我们公司,我们使用的服务可确保 php artisan queue:work 流程 运行ning。这里的好处是我们可以在更新的时候停止服务。

如有错误请指正。我以与 OP 相同的方式开始,这就是我现在的样子:)