【问题标题】:How to limit Laravel queue work to one execution end exit?如何将 Laravel 队列工作限制为一个执行结束出口?
【发布时间】:2018-02-12 21:37:43
【问题描述】:

出于测试目的,我将作业排在队列中。 我在另一边打开了我执行的命令行:

php 工匠队列:工作

上面的命令一直在终端上监听和运行,直到我手动杀死它。

因为我正在单独测试队列中的作业。让命令执行一个或多个条目并退出而不是作为守护进程执行并不得不以某种方式杀死它会非常好......

还要考虑到,在不重新启动守护进程命令的情况下,无法编辑代码并让当前执行 queue:work 获取更新。

【问题讨论】:

    标签: laravel testing queue


    【解决方案1】:

    您正在寻找php artisan queue:work --once,其中--once 将处理队列中的下一个可用作业,然后退出。如果没有可用的作业,它将休眠(默认为 3 秒)然后退出。

    还有 php artisan queue:listen 循环执行上述命令,这意味着它会在没有人工干预的情况下检测您的代码更改。

    【讨论】:

      【解决方案2】:

      据我所知,目前还没有这样的命令。您可以尝试使用sync队列驱动进行测试。

      【讨论】:

      • 是的。正如@sisve 回答的那样。
      【解决方案3】:

      使用

      php artisan queue:work --tries=3
      

      尝试执行 3 次

      【讨论】:

      • 这与我的问题无关。这与同一队列消息的尝试次数无关。
      猜你喜欢
      • 1970-01-01
      • 2016-09-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 2016-09-09
      • 2019-11-28
      • 2018-07-15
      相关资源
      最近更新 更多