我的队列中有三个工作;
其中一个的重试次数设置为100.
当我的所有工作都失败时,Laravel按照以下方案运行工作;
然后;
我想将此行为更改为以下方案;
所以我希望之前的工作能够阻止他们达到重试次数,然后继续下一份工作。
如何使用Laravel的Job系统实现这一目标?
(我无法使用链式方法在我的软件层上链接作业。我希望通过配置来实现这一点)
答案 0 :(得分:0)
如果这是一份工作,你无法控制那份工作......工作是异步工作的。你需要同步完成任务:)
所以,或者你把所有东西都搬到一个工作岗位上,或者你不能用另一种方式去做:)
当然,你可以为你的队列命名,并按照优先顺序运行并只设置1名工作人员...但这不是一个好的选择,你可能不会很好:)
此外,您可以在完成一项工作后解雇工作。只需在完成后将控制器(?)中的作业创建到作业中。我在我自己的系统中实现了该解决方案。只有完成一项工作,然后才开始
答案 1 :(得分:0)
您可以使用Job Events来控制将它们推送到队列的顺序。作业A成功完成后,作业B通过事件监听器启动,对于作业C也是如此。作业A可以重试100次而无法触发作业B.