Dependencies RabbitMQ中的作业依赖

Dependencies RabbitMQ中的作业依赖,dependencies,rabbitmq,Dependencies,Rabbitmq,我试图找出如何最好地设置以下场景: 将多个A型作业添加到队列中 完成所有A型作业后,将需要B型或C型作业(每个A型作业一个) 当所有A、B和C型作业完成后,将需要最终的D型作业 因此,基本上我们对队列中的作业有一些依赖性,因此我们不希望开始运行需要完成其他作业的作业。是否有建立这样一个系统的指导方针?A型作业完成后是否应添加B型或C型作业?所有的工作岗位都应该提前加起来,并告诉工人在准备好之前不要撤掉吗 如果我必须手动管理这种依赖关系,这两种方法都有优点和缺点,但我很好奇是否有一种不同的模式可以

我试图找出如何最好地设置以下场景:

  • 将多个A型作业添加到队列中
  • 完成所有A型作业后,将需要B型或C型作业(每个A型作业一个)
  • 当所有A、B和C型作业完成后,将需要最终的D型作业
  • 因此,基本上我们对队列中的作业有一些依赖性,因此我们不希望开始运行需要完成其他作业的作业。是否有建立这样一个系统的指导方针?A型作业完成后是否应添加B型或C型作业?所有的工作岗位都应该提前加起来,并告诉工人在准备好之前不要撤掉吗

    如果我必须手动管理这种依赖关系,这两种方法都有优点和缺点,但我很好奇是否有一种不同的模式可以替代它,以更简单的方式完成同样的事情。

    我想知道这种模式是否能启发您,即在这里发送原始消息和“slip”它定义了下一条消息(B,C)应该是什么(在运行时应用什么规则来解决它)

    我还将在slip中添加一个唯一的相关ID和相关组大小(在这种情况下:消息的总数)


    对于最后的D作业,我会让B/C流程步骤发送一条“D-ready”请求消息。当收集到所有D-ready消息(基于关联ID/组大小)时,我将触发最终的D作业。

    如果A的作业大小大约为3000(因此为3000 B和Cs),并且只有一个D,您建议如何监控类似的内容?标准表格?对于全局统计信息,您可以为每种消息类型使用不同的队列,并使用队列统计信息。但是了解每个作业的状态可能需要外部数据存储。