Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
工作人员角色中作业之间的Azure依赖关系_Azure - Fatal编程技术网

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

工作人员角色中作业之间的Azure依赖关系,azure,Azure,Azure中每10分钟设置几个工作者角色来处理一组作业(100+)。有些工作是独立的,但另一些不是。例如,在发送作业B之前,接收方必须处理、发送并确认作业a 可以将独立作业放在队列上,以分配给工人角色。我想知道队列是否可以为相关作业工作,以便制定一致的解决方案 编辑:我使用了一个过于简单的例子。作业A和B都由几个相关的消息组成。这些消息将分发给n个工作人员角色,并将单独发送,因此当n个工作人员角色获得确认时,作业A完成,然后可以发送作业B的消息(分发给m个工作人员角色并由m个工作人员角色处理)。

Azure中每10分钟设置几个工作者角色来处理一组作业(100+)。有些工作是独立的,但另一些不是。例如,在发送作业B之前,接收方必须处理、发送并确认作业a

可以将独立作业放在队列上,以分配给工人角色。我想知道队列是否可以为相关作业工作,以便制定一致的解决方案

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

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

只有当您的一个工作人员角色确认作业A已完成时,才会发送作业B。那么您为什么关心谁将处理作业B。