3

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

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

我现在使用的方法: 实例查看消息,将它自己的实例 ID 添加到消息中并将其放回队列,如果消息包含它自己的实例 ID,则不查看消息。

PS我不想实现TCP侦听器,如果有本地解决方案,请询问。

4

2 回答 2

10

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

可以在此处找到简短的操作指南

http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-topics/

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

于 2013-03-03T15:06:49.740 回答
0

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

于 2013-03-03T18:52:40.363 回答