ここに理論的な質問があります:
メッセージ キューイングを使用してアプリケーションを構築する場合、さまざまな目的でさまざまなデータ型をサポートする複数のキューが必要になります。20 個のキューがあるとします (たとえば、新しいユーザーを作成するためのキュー、新しい注文を処理するためのキュー、ユーザー設定を編集するためのキューなど)。
1 つの Web ロールと 1 つのワーカー ロールの「最小」を使用して、これを Windows Azure に展開します。
これら 20 個のキューすべてから適切な方法で読み取るにはどうすればよいでしょうか? これは私が念頭に置いていたことですが、これに関する実際の実際の経験はほとんどまたはまったくありません。
worker ロールの「メイン」クラスで 20 個のスレッドを生成するクラスを作成します。これらの各スレッドに、異なるキューをポーリングするメソッドを実行させ、各ポーリング間でこれらすべてのスレッドをスリープ状態にします (もちろん、スリープ時間を増やすバックオフ メカニズムを使用します)。
これにより、20 個のスレッド (または 21 個?) と 20 個のキューがアクティブにポーリングされることになり、多くの無駄なメッセージが発生します (空のキューをポーリングするたびに、メッセージとして課金されます)。
この問題をどのように解決しますか?