laravel-4 – Laravel作业和保留状态或预留队列

我把一个脚本作为一个作业推送到队列中.我有几个其他队列,所有这些都由supervisord处理.我使用Redis作为Laravel 4.2的队列驱动程序.

我想知道这些工作的不同状态:

>等待执行的工作
>失业的工作
>保留的工作

这些不同状态的问题是我在保留队列队列中有数千个作业:xyz:保留(我不知道为什么)在队列队列中被推送:xyz和这些作业(来自保留队列)阻塞执行新推的工作.

以下是supervisord运行处理作业的命令:
    php artisan queue:work –queue = xyz –tries = 1 –daemon –env = prodEnv
    我的问题是:

>为什么作业被推入预留队列/状态
>为什么它会被Laravel推回原来的队列?
>失败和保留工作有什么区别?要么
>什么时候被标记/被视为失败或保留?

将预留作业推送到原始队列的过程会减慢队列中新作业的处理速度,我希望通过处理这些预留作业来加快处理速度.

最佳答案 我有同样的问题,并能够最终解决它.

就我而言,这是因为运行时错误.

我的工作有一段代码说A,B,C. C部分每次都会导致运行时错误,虽然我可以看到A和B部分的效果如预期,但我注意到作业被推到保留状态并且没有观察到执行C部分的效果.

有趣的是,我有另一个Job运行,它在一段时间后修复了运行时错误,然后执行了C部分并且从保留的作业中删除了该作业.

这可能无法直接回答您的所有问题,但我希望它有助于找到它们.

点赞