2

我的队列中有三份工作;

  • 一种
  • C

其中之一的重试次数设置为 100。

当我所有的作业都失败时,Laravel 会按照以下方案运行作业;

  • 1
  • 乙 1
  • C 1

进而;

  • A2
  • 乙二
  • C 2

我想将此行为更改为以下方案;

  • A 100(到失败的表)
  • 乙 1
  • 0

所以我希望以前的工作阻止 tikk 他们达到重试次数,然后继续下一个工作。

如何使用 Laravel 的 Job 系统实现这一点?

(我不能用链方法链接我的软件层上的作业。我想通过配置来实现这一点)

4

2 回答 2

1

您可以使用作业事件来控制它们被推送到队列的顺序。一旦作业 A 成功完成,作业 B 通过事件侦听器启动,作业 C 也是如此。作业 A 可以重试 100 次,而无法触发作业 B。

于 2018-02-13T11:25:01.580 回答
0

如果这是一份工作,您无法控制该工作的另一份工作......工作正在异步工作。您需要同步完成工作:)

因此,或者您将所有内容都转移到一份工作中,或者您无法以另一种方式进行:)

当然,您可以命名您的队列,并以优先顺序运行并仅设置 1 个工作人员...但这不是一个好的选择,您不能对此感到满意 :)


此外,您可以在完成一项工作后解雇工作。只需在完成后将创建作业从您的控制器(?)转移到作业中。我在自己的系统中实现了该解决方案。只有完成了一项工作,接下来才是解雇

于 2018-02-13T07:33:26.043 回答