工作者角色中作业之间的Azure依赖关系

时间:2014-12-04 08:12:25

标签: azure

每隔10分钟,Azure中的几个辅助角色将设置为处理一组作业(100+)。有些工作是独立的,但有些则不是。对于(简单)示例,在发送作业B之前,必须由接收方处理,发送和确认作业A.

可以将独立作业放在队列中以分发给工作者角色。我想知道队列是否可以用于依赖作业以便制定一致的解决方案。

编辑:我使用了一个过于简单的例子。作业A和B都包含几个相关的消息。这些消息将分发给n个工作者角色并将单独发送,因此当n个工作者角色获得确认时,作业A结束,然后可以发送作业B的消息(分发给m工作者角色并由其处理)。 我认为在这种情况下,唯一的选择是让一个worker角色同时处理作业A和B,否则需要一个复杂的inter worker角色同步机制。

1 个答案:

答案 0 :(得分:1)

我认为你可以使用队列来促进这一点。一种可能的解决方案是让工作人员在作业A完成后在同一队列或其他队列中写入另一条消息。因此,工作人员将获取作业A的消息,处理作业,写入作业A完成的另一条消息并删除原始消息。现在,另一个线程将接收消息并开始处理作业B.如果消息发布在同一队列中,则消息需要传达它是多作业链的一部分以及已完成的步骤。如果消息发布在另一个队列中(例如,作业B的特定队列),那么您的代码将知道此消息是针对作业B的,并且应该相应地处理它。