0

Azure にデプロイする Web サイトを開発しています。現在、Azure Queue を使用してユーザーにメールを送信しています。現在のスレッドをスリープ状態にすることで、60 秒ごとに受信メッセージのキューをチェックしています。

私の問題は、スレッドを待機して60秒間待機したくないということです。代わりに、キューが実際にメッセージを受信したときにメッセージ送信機能をトリガーしたいのです。Service Bus トピック/サブスクリプションのメカニズムはわかりましたが、同じサブスクリプション メカニズムを Azure キューで (トピック/サブスクリプションを使用せずに) 実装できるかどうかを知りたいです。これは可能ですか?メッセージがキューに受信された場合にのみ実行できるように、Azure キューは何かをリッスンできますか。私は確かにスレッドをスリープ状態にしたくありません。

ありがとうございました。

4

1 に答える 1

1

ロング ポーリングをサポートする Azure Queues の質問は以前に尋ねられました。そのため、これを重複としてマークしました。

スレッドスリープについて: スレッドをスリープさせてキューをリッスンしたくない理由がわかりません。別のスレッドにすることができます。つまり、他のプロセスを拘束していません。そして...キューにメッセージがある限り、呼び出しの間にスリープする必要はありませんGetMessage()-キューが空になるまで読み続けてください.

また: なぜ 60 秒待つのですか? 1 秒から始めて、たとえば 16 秒まで指数関数的にバックオフし、そこにとどまりますか? 数秒ごとにチェックする費用はほとんどかかりません (100K トランザクションあたり 1 ペニー)。これは、複数のロール インスタンスが実行されている場合でも、非常に一般的なパターンです。

于 2013-06-17T13:25:32.383 に答える