Azure Service Bus Queue を活用して、コストのかかるデータベース計算をトリガーするメッセージをディスパッチします。これらのメッセージはかなり迅速に生成される可能性があり、同じメッセージが近接して生成される場合があります。この場合、データを 1 回だけ処理します。
そのため、重複検出を活用するつもりですが、ドキュメントや以前の質問から収集できないニュアンスがいくつかあります。パラメータは次のとおりです。
- メッセージが処理されるのを待っていて、同じメッセージが作成されようとしている場合は、作成しないでください。
- メッセージが以前に処理されていて、同じメッセージが作成されようとしている場合は、作成してください。
- メッセージが現在処理中で、同じメッセージが作成されようとしている場合は、作成してください。
私が見つけられないのは、「履歴」重複検出を無効にして「待機中」重複検出を有効にする方法です-キューで待機しているメッセージを検出しますが、すでに処理されたメッセージは検出しません。重複検出履歴メカニズムは、完了したメッセージに対してのみ機能しますか?それとも、時間枠は相互に関連する待機中のメッセージにも関連していますか?
#3については、メッセージの処理に5分の遅延を追加することで解決することを検討しています。これにより、処理中にメッセージが作成された場合、処理が完了するのに十分な時間があります。