Azure 如何向所有工作人员角色实例发送消息?

Azure 如何向所有工作人员角色实例发送消息?,azure,azure-storage-queues,Azure,Azure Storage Queues,我使用AzureQueue在角色之间进行通信。我的消息如“GoToMaintenanceMode”、“StopSendingEmails”、“DoNotAcceptRequests”等。但我意识到,当我有多个实例时,它不适用于我的场景,因为队列消息一次只显示一个实例 所以我的问题是,除了下面的选项之外,是否有一种优雅的方法来处理这个问题,比如Role.AllInstances.Run()等 我现在使用的方法: 实例窥视消息,将其自身的实例id添加到消息中并将其放回队列,如果消息包含其自身的实例i

我使用AzureQueue在角色之间进行通信。我的消息如“GoToMaintenanceMode”、“StopSendingEmails”、“DoNotAcceptRequests”等。但我意识到,当我有多个实例时,它不适用于我的场景,因为队列消息一次只显示一个实例

所以我的问题是,除了下面的选项之外,是否有一种优雅的方法来处理这个问题,比如Role.AllInstances.Run()等

我现在使用的方法: 实例窥视消息,将其自身的实例id添加到消息中并将其放回队列,如果消息包含其自身的实例id,则不窥视消息


另外,我不想实现TCP侦听器,如果有本机解决方案,我会询问它。

您可以使用Windows Azure服务总线主题/订阅,而不是队列。它们支持多播(即多个接收器)

在这里可以找到一个简短的操作指南


基本上,队列将成为一个主题。所有实例都将成为该主题的订户。

因为您不需要TCP侦听器选项或服务总线选项。把你的想法扩展到多个队列怎么样。Instance1将从Queue1读取,Instance2将从Queue2读取,依此类推。您唯一需要处理的是队列的数量,以及同时向所有队列添加队列消息。

谢谢!这不是我期望的答案,但处理它是一个好主意。但是,如果没有其他选择的话,我们会选择更地道的方式,所以我们会选择mark作为答案。再次感谢您的时间和关注。只是想知道“更本土化”是什么意思。您拥有数量可变的实例,并且希望向所有实例广播一条消息。您有Azure存储队列(非最佳)、服务总线队列(具有发布/订阅、最佳、“本机”Azure)、tcp端口(非常快速,易于在RoleInstance中枚举,支持程度很低,并且“本机”Windows)。我不确定在这一点上,除了SQL表或Azure表存储中的带有命令的行之外,您还会得到什么其他答案?同样,变量实例计数,所以您必须对此进行说明。@DavidMakogon正如我在问题中所说的,我正在寻找类似Role.AllInstances.Run的内容(如果有)。我肯定会使用服务总线而不是排队。非常感谢。请注意,每个实例都需要一个订阅,否则每个消息将被传递到一个或多个实例,但很可能不是所有实例。@cilerler与上面解释的架构完全相同。感谢您的链接是否有方法将同一消息发送到多个队列,或者我必须在两个队列客户端上手动调用.send()?只是想知道是否有更有效的方法?如果AutoForward允许您存储并转发到第二个源(例如。。。