【问题标题】:Laravel Jobs and Reserved Status or Reserved QueueLaravel 作业和保留状态或保留队列
【发布时间】:2017-08-31 21:39:41
【问题描述】:

我有一个脚本在被推入队列时作为作业运行。我还有其他几个队列,所有这些都由主管处理。我使用 Redis 作为 Laravel 4.2 的队列驱动程序。

我想了解职位的不同状态:

  • 等待执行的作业
  • 失败的工作
  • 保留的作业

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

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

  • 为什么将作业推入保留队列/状态
  • 为什么会被 Laravel 推回原来的队列?
  • 失败作业和保留作业有什么区别?或者
  • 何时将作业标记/视为失败或保留?

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

【问题讨论】:

    标签: laravel-4 redis queue jobs supervisord


    【解决方案1】:

    我也遇到了同样的问题,终于解决了。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      相关资源
      最近更新 更多