3

私はAzureQueueを使用してロール間で通信していました。「GoToMaintenanceMode」、「StopSendingEmails」、「DoNotAcceptRequests」などのメッセージ。ただし、キューメッセージが複数のインスタンスを持っている場合、一度に1つのインスタンスしか表示されないため、シナリオでは機能しないことに気付きました。

だから私の質問は以下のオプションの横にありますRole.AllInstances.Run()などのようなこの問題を処理するためのエレガントな方法はありますか?

私が現在使用しているメソッド: インスタンスはメッセージをピークし、メッセージに独自のインスタンスIDを追加してキューに戻し、独自のインスタンスIDが含まれている場合はメッセージをピークしません。

PS TCPリスナーを実装したくないので、ネイティブソリューションがあるかどうかを尋ねます。

4

2 に答える 2

10

キューの代わりに、WindowsAzureサービスバスのトピック/サブスクリプションを使用できます。それらはマルチキャスト(つまり複数の受信機)をサポートします。

簡単なハウツーガイドはここにあります

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 に答える