我想弄清楚如何最好地设置以下场景:
所以基本上我们对队列中的作业有一些依赖关系,这样我们就不想开始运行需要完成其他作业的作业了。是否有建立这样一个系统的指南? A型工作在工作完成后是否应该添加B或C类型的工作?是否应该预先添加所有工作,并以某种方式告诉工人在他们准备好之前不要拉他们?
如果我必须手动管理这种依赖关系,这两种方法都有利有弊,但我很好奇是否有一种不同的模式,我可以使用它来完成同样的事情但是更容易。
答案 0 :(得分:3)
我想知道routing slip模式是否能激发你的灵感,即在原始的A消息中发送一个“滑动”,定义下一个消息(B,C)应该是什么(适用于哪些规则)在运行时计算出来。)
我还会在单据中添加唯一的相关ID和相关组大小(在这种情况下:A消息的总数)。
对于最后的D工作,我将让B / C流程步骤发送“D-ready”请求消息。当收集到所有D-ready消息时(基于相关ID /组大小),我将触发最终的D作业。