そのため、最近 Azure Service Bus を調査しましたが、無限ループを使用してキュー/サブスクリプションをポーリングする必要があるのか、それとも OnMessage コールバック/メッセージ ポンプ機能を使用する必要があるのかについて、少し混乱しています。より少ない操作を実行してコストを削減するにはどうすればよいでしょうか?
理想的には、操作を無駄にしないようにイベント駆動型システムが必要であり、一般的にははるかに優れたアプローチです。
私の質問は、「イベント駆動型メッセージ ポンプでメッセージを処理する」と定義されている OnMessage を使用して、本当にイベント駆動型ですか?
このページ (QueueClient.OnMessage): https://msdn.microsoft.com/library/azure/microsoft.servicebus.messaging.queueclient.onmessage.aspxを見ると、下部にあるコメントに気付くでしょう。基本的には、Receive() メソッドを呼び出す無限ループのラッパーです。それは私にはあまりイベント駆動型ではないように思えます。
このページ (SubscriptionClient.OnMessage): https://msdn.microsoft.com/en-us/library/azure/dn130336.aspxを見ると、その発言は存在しません。トピック/サブスクリプションとキューで同じですか、それとも実際にはサブスクリプションではイベント駆動型ですが、キューではそうではありませんか?
明らかにそうではないのに、なぜ彼らはそれがイベント駆動型であるとさえ言っているのですか? QueueClient.OnMessage ページの発言に「無限ループ」「すべての受信操作が課金対象イベント」という言葉があるのはちょっと怖いです。
また、どちらの方法でも費用がかかるかどうかについてはあまり心配していません。可能な限り効率的にすることに関心があります。