我将一个脚本作为一个作业推送到队列中。我有几个其他队列,所有这些都由supervisord处理。我使用Redis作为Laravel 4.2的队列驱动程序。
我想知道这些工作的不同状态:
这些不同状态的问题在于,我在队列queue:xyz:reserved
和这些工作中推送了保留队列queue:xyz
(我不知道为什么)中的数千个作业(来自保留队列)阻止执行新推送的作业。
以下是supervisord运行处理作业的命令:
php artisan queue:work --queue=xyz --tries=1 --daemon --env=prodEnv
我的问题是:
将预留作业推送到原始队列的过程会减慢队列中新作业的处理速度,我希望通过处理这些预留作业来加快处理速度。
答案 0 :(得分:1)
我遇到了同样的问题,最终能够解决这个问题。
就我而言,这是因为运行时错误。
我的工作有一段代码说A,B,C。 C部分每次都会导致运行时错误,虽然我可以看到A和B部分的效果如预期,但是我注意到作业被推到保留状态并且没有观察到执行C部分的效果。
有趣的是,我有另一个Job运行,它在一段时间后修复了运行时错误,然后执行了C部分并且从保留的作业中删除了该作业。
这可能无法直接回答您的所有问题,但我希望它有助于找到它们。