Laravel Worker似乎没有停止

时间:2018-10-19 20:42:35

标签: php laravel

我在数据库中有一个作业列表,当我运行php artisan queue:work database时,它会处理每个作业,但是一旦处理了最后一个作业,它似乎就不会停止。我认为这样做会意味着一旦工人没有工作,它就会停止。

2 个答案:

答案 0 :(得分:3)

如果您希望工作人员在完成一项工作后退出,请添加--once选项:

$ php artisan queue:work --once

从5.7开始,您可以使用--stop-when-empty处理队列中的所有作业,然后退出:

$ php artisan queue:work --stop-when-empty

文档:https://laravel.com/docs/5.7/queues#running-the-queue-worker

注意:默认行为在Laravel 5.3周围更改。以前,工人要处理一份工作然后退出;只有使用了--daemon选项,它才能继续运行。在5.3之后,这成为默认行为,--daemon已弃用。

答案 1 :(得分:0)

请注意,一旦启动queue:work命令,它将继续运行,直到手动将其停止或您关闭终端为止。使用--once选项不能解决您的问题。 有关更多信息,请查看laravel文档。

文档说:--once选项可用于指示工作人员仅处理队列中的单个作业。