我对php artisan queue :: work命令感到不安。
我的命令不起作用,但我的作业被插入作业表但从未执行过。
我正在使用mongodb驱动程序进行队列。
我做错了请建议我。
答案 0 :(得分:1)
花了半天时间进行搜索后,我发现队列不在维护模式下运行。您必须将--force
放在其末尾。
-force强制工人甚至在维护模式下运行
请运行php artisan queue:work --force
以便在维护模式下运行队列。
有关详细信息,请参见https://laravel.com/docs/8.x/configuration#maintenance-mode。
答案 1 :(得分:0)
由于这个帖子有点旧,我会分享我的经验。
有一个错误,找不到但与此条件相对应。你可以查看你的表jobs
,如果你的queue:work
工作得很好,那么在Laravel中工作应该已被删除,所以问题是你的队列无法处理你表中的最高职位。这可能是数据库中可序列化数据的问题。
要解决此问题,您可以尝试清除表格 jobs
并从id
重置'增量~0
'。另一方面,您还可以检查数据序列。重置表后,这可能会有所帮助。
答案 2 :(得分:0)
我遇到了类似的问题。作业已被插入MySql DB的作业表中,但是php artisan queue:work
并未将其接收。
在我的情况下,队列被命名为“优先级”(作业表中的队列列值)。
所以我不得不不同地运行queue:work命令:
php artisan queue:work --daemon --queue=priority
但是请注意,以上命令仅在priority
队列中执行作业;您可以根据需要添加更多队列名称,例如--queue=priority,queue_3,queue_4
我希望queue:work
的值不带有--queue=
来提取所有待处理的作业。
结果证明,我错了。 ¯\ _(ツ)_ /¯
希望这对其他人有帮助。