在Laravel队列完成运行后停止

问题描述

我正在Laravel 5.5上运行Web应用程序。我需要在队列中运行作业,然后停止队列。队列不允许继续运行。

我正在运行以下命令,但这无休止地进行下去。

PHP artisan queue:work --tries=3

如果我使用超级用户,可以从Laravel应用程序内部停止队列。

我们非常感谢您的帮助。

解决方法

从文档中:

处理所有排队的作业然后退出

--stop-when-empty option可用于指示工作人员处理所有作业,然后正常退出。如果您希望在队列为空后关闭该容器,请在Docker容器中处理Laravel队列时使用此选项:

尝试php artisan queue:work --tries=3 --stop-when-empty

https://laravel.com/docs/8.x/queues#running-the-queue-worker