如何将 Laravel 队列工作限制为一个执行结束出口?
Posted
技术标签:
【中文标题】如何将 Laravel 队列工作限制为一个执行结束出口?【英文标题】:How to limit Laravel queue work to one execution end exit? 【发布时间】:2018-02-12 21:37:43 【问题描述】:出于测试目的,我将作业排在队列中。 我在另一边打开了我执行的命令行:
php 工匠队列:工作
上面的命令一直在终端上监听和运行,直到我手动杀死它。
因为我正在单独测试队列中的作业。让命令执行一个或多个条目并退出而不是作为守护进程执行并不得不以某种方式杀死它会非常好......
还要考虑到,在不重新启动守护进程命令的情况下,无法编辑代码并让当前执行 queue:work 获取更新。
【问题讨论】:
【参考方案1】:您正在寻找php artisan queue:work --once
,其中--once
将处理队列中的下一个可用作业,然后退出。如果没有可用的作业,它将休眠(默认为 3 秒)然后退出。
还有 php artisan queue:listen
循环执行上述命令,这意味着它会在没有人工干预的情况下检测您的代码更改。
【讨论】:
【参考方案2】:据我所知,目前还没有这样的命令。您可以尝试使用sync
队列驱动进行测试。
【讨论】:
是的。正如@sisve 回答的那样。【参考方案3】:使用
php artisan queue:work --tries=3
尝试执行 3 次
【讨论】:
这与我的问题无关。这与同一队列消息的尝试次数无关。以上是关于如何将 Laravel 队列工作限制为一个执行结束出口?的主要内容,如果未能解决你的问题,请参考以下文章
laravel 队列 - 同步驱动程序如何工作?它是在单独的进程/线程还是主执行线程中执行?
Laravel 4.2 AWS SQS 队列设置使用 EB 工作环境