【问题标题】:Php artisan queue:work not working but job are insertedPHP工匠队列:工作不工作,但工作被插入
【发布时间】:2017-01-13 10:35:15
【问题描述】:

我对 php artisan queue::work 命令感到不安。

我的命令不起作用,但我的作业已插入作业表但从未执行。

我正在为队列使用 mongodb 驱动程序。

我做错了什么请建议我。

【问题讨论】:

    标签: mongodb laravel-5 queue


    【解决方案1】:

    花了半天时间搜索后,我注意到队列不在维护模式下运行。你必须把--force放在最后。

    --force 强制工作器在维护模式下运行

    所以运行 php artisan queue:work --force 以便在维护模式下运行队列。

    详情请见https://laravel.com/docs/8.x/configuration#maintenance-mode

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题。 Jobs 被插入到 MySql DB 中的 jobs 表中,但 php artisan queue:work 没有选择这些。

      在我的例子中,队列被命名为(作业表中的队列列值)“优先级”。

      所以我不得不以不同的方式运行 queue:work 命令:

      php artisan queue:work --daemon --queue=priority
      

      但请注意,上面的命令只执行priority队列中的作业;如果需要,您可以添加更多队列名称,例如 --queue=priority,queue_3,queue_4

      我期待 queue:work 没有 --queue= 值来获取任何待处理的工作。

      事实证明,我错了。 ¯\_(ツ)_/¯

      希望这对其他人有所帮助。

      【讨论】:

        【解决方案3】:

        由于这个帖子有点老了,我会分享我的经验。

        有一个不明显但与此条件相对应的错误。你可以检查你的表 jobs,如果你的 queue:work 运行良好,那么在 Laravel 中,这些工作应该已经被删除了,所以问题是你的队列无法处理你表中的最高工作。可能是db中可序列化数据的问题。

        要解决它,您可以尝试清除表jobs~0 重置'增量id'。另一方面,您也可以检查您的数据序列。这在重置表后可能会有所帮助。

        【讨论】:

          猜你喜欢
          • 2021-11-04
          • 1970-01-01
          • 1970-01-01
          • 2018-07-25
          • 2019-06-03
          • 2016-04-03
          • 2016-05-26
          • 2014-03-19
          • 1970-01-01
          相关资源
          最近更新 更多