每隔10分钟,Azure中的几个工作者角色就会被设置为处理一组作业(100+)。有些工作是独立的,但有些则不是。对于(简单的)示例,在发送作业B之前,必须先处理、发送并由接收方确认作业A。
可以将独立作业放在队列中,以分配给工作人员角色。我想知道队列是否可以为相关作业工作,以便做出一致的解决方案。
编辑:我使用了一个过于简单的例子。作业A和B都由几条相关消息组成。这些消息将被分发到n个工作角色,并将分别发送,因此当n个工作角色获得ack时,作业A完成,然后可以发送作业B的消息(分发给m个工作角色并由m个工作角色处理)。我认为在这种情况下,唯一的选择是让单个工作角色同时处理作业A和B,否则需要一个复杂的工作角色间同步机制。
发布于 2014-12-04 16:41:26
我认为您可以使用队列来促进这一点。一种可能的解决方案是,一旦作业A完成,让worker在同一队列或其他队列中写入另一条消息。因此,worker将拾取作业A的消息,处理该作业,写入作业A已完成的另一条消息,并删除原始消息。现在,另一个线程将获取该消息并开始处理Job B。如果该消息发布在同一队列中,则该消息需要传达它是多作业链的一部分,以及已经完成了哪些步骤。如果消息是在另一个队列中发布的(例如,作业B的特定队列),那么您的代码将知道此消息是针对作业B的,并且应该对其进行相应的处理。
https://stackoverflow.com/questions/27289093
复制相似问题