2013-01-11 18 views
6

キューに常に別個のメッセージがあることを確認する上品な方法があるかどうかを知りたいと思います(重複検出ウィンドウやその期間については何もありません)。Azure Storage Queueでの重複検出

私はサービスバスキューがセッションの概念を提供していることを知っています(私は、サービスバスキューの重複検出が期間に依存するため私には役に立たないと述べたので)。他のAzureサービスへの依存性は、この機能のためだけです。

ありがとう、

+0

参照[AzureサービスバスキューとAzureストレージキュー](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-azure-and-service-bus-キュー比較対照) –

答えて

10

これは確実に行うことはできません。

Storageキューを照会して、同じ内容のメッセージが既に存在するか、以前に存在したかどうかを調べるメカニズムはありません。いくつかのストレージテーブルを使用して独自のロジックを実装しようとすることはできますが、信頼できません。テーブルへのエントリが成功し、キューへのエントリが失敗する可能性があるため、テーブルに不正なデータが存在する可能性があります。

あなたのコードは、すでに処理された同じデータを含むメッセージを取得できると常に想定してください。これは、作業中のワーカーがクラッシュしたり、時間がかかりすぎると、メッセージがキューに戻ってくる可能性があるためです。

+4

実際には、冪等のプロセスが必要です –

関連する問題