高負荷/大規模な Web サービスのステート マシンとして Azure Queues を使用したいと考えています。
クライアントは Web サービス エンドポイントにリクエストを送信し、その時点でリクエスト ID を返します。
次に、Worker ロールがメッセージを処理できるようにメッセージをキューに送信しますが、送信プロセス中にデータベース アクティビティは発生しません。代わりに、メッセージが存在するキューを使用して、現在の状態を表現したいと考えています。
私の問題は、worker ロールがキューからメッセージを取得して処理すると、そのキューで非表示になることです。そのメッセージの処理状況を確認したい場合、あいまいなメッセージ状態があります。メッセージが失われたか受信されなかったか、キューに入っているが処理中であるために表示されていないかのいずれかです。
理想的には、目に見えないメッセージをピークにできるようになりたいです。リクエスト ID に一致するものが見つかった場合、それが非表示の場合は処理中であり、表示されている場合は処理を待機していることがわかります。明らかに、その操作はデータベースの書き込みにつながるため、いつ処理が完了するかを知っています。
これは可能ですか、それとも Azure キュー内の非表示のメッセージを覗き見ることができないという事実が、これを不可能にするのでしょうか?