如何更改 Laravel 中的作业队列处理?

How can I change the Job Queue processing in Laravel?

我的队列中有三个作业;

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

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

然后;

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

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

如何使用 Laravel 的工作系统实现此目的?

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

如果这是一项工作,您无法通过该工作控制另一项工作...工作是异步工作的。你需要同步完成事情:)

所以或者你把所有的事情都转移到一份工作中,或者你不能用另一种方式来做:)

当然,您可以命名您的队列,运行 对它们进行优先排序并仅设置 1 个工作人员...但这不是一个好的选择,您不能很好地处理它:)


此外,您可以在完成一项工作后解雇工作。完成后,只需将控制器(?)中的创建作业移至作业中即可。我在自己的系统中实施了该解决方案。仅当一项工作完成后,下一项工作才开始

您可以使用 Job Events 来控制将它们推入队列的顺序。作业 A 成功完成后,作业 B 通过事件侦听器启动,作业 C 也是如此。作业 A 可以重试 100 次,但无法触发作业 B。