如何更改 Laravel 中的作业队列处理?
How can I change the Job Queue processing in Laravel?
我的队列中有三个作业;
- 一个
- 乙
- C
其中之一的重试次数设置为 100。
当我的所有作业都失败时,Laravel 按照以下方案运行作业;
- 一个1
- B 1
- C 1
然后;
- 一个2
- B 2
- C 2
我想按照以下方案更改此行为;
- A 100(失败table)
- B 1
- C 0
所以我希望之前的工作能够阻止他们达到重试次数,然后继续下一个工作。
如何使用 Laravel 的工作系统实现此目的?
(我不能用链式方法将我的软件层上的作业链接起来。我想通过配置来实现)
如果这是一项工作,您无法通过该工作控制另一项工作...工作是异步工作的。你需要同步完成事情:)
所以或者你把所有的事情都转移到一份工作中,或者你不能用另一种方式来做:)
当然,您可以命名您的队列,运行 对它们进行优先排序并仅设置 1 个工作人员...但这不是一个好的选择,您不能很好地处理它:)
此外,您可以在完成一项工作后解雇工作。完成后,只需将控制器(?)中的创建作业移至作业中即可。我在自己的系统中实施了该解决方案。仅当一项工作完成后,下一项工作才开始
您可以使用 Job Events 来控制将它们推入队列的顺序。作业 A 成功完成后,作业 B 通过事件侦听器启动,作业 C 也是如此。作业 A 可以重试 100 次,但无法触发作业 B。
我的队列中有三个作业;
- 一个
- 乙
- C
其中之一的重试次数设置为 100。
当我的所有作业都失败时,Laravel 按照以下方案运行作业;
- 一个1
- B 1
- C 1
然后;
- 一个2
- B 2
- C 2
我想按照以下方案更改此行为;
- A 100(失败table)
- B 1
- C 0
所以我希望之前的工作能够阻止他们达到重试次数,然后继续下一个工作。
如何使用 Laravel 的工作系统实现此目的?
(我不能用链式方法将我的软件层上的作业链接起来。我想通过配置来实现)
如果这是一项工作,您无法通过该工作控制另一项工作...工作是异步工作的。你需要同步完成事情:)
所以或者你把所有的事情都转移到一份工作中,或者你不能用另一种方式来做:)
当然,您可以命名您的队列,运行 对它们进行优先排序并仅设置 1 个工作人员...但这不是一个好的选择,您不能很好地处理它:)
此外,您可以在完成一项工作后解雇工作。完成后,只需将控制器(?)中的创建作业移至作业中即可。我在自己的系统中实施了该解决方案。仅当一项工作完成后,下一项工作才开始
您可以使用 Job Events 来控制将它们推入队列的顺序。作业 A 成功完成后,作业 B 通过事件侦听器启动,作业 C 也是如此。作业 A 可以重试 100 次,但无法触发作业 B。