queue:restart laravel命令是否必要?

问题描述

我通过以下步骤在共享托管中实现了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相同的方式开始,这就是我现在才是:)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...