2017-09-15 13 views
1

ピークモードでメッセージを継続的に受信し、処理が失敗した場合は配信を中止します。しかし、メッセージはすぐに再び利用可能になり、再び処理のために受信されます。それは再び急速に失敗し、最大配送後には死んでしまいます。Azureサービスバス:メッセージの処理に失敗した場合の指数再試行ポリシーを実装する最適な方法

トピック/サブスクリプションを放棄した後にリリースする前に待機するように設定する方法はありますか?好ましくは指数関数的に。

もちろん、私はコードからの提案も受け付けています。

答えて

0

サービスバス構成で指数バックオフを設定する方法はありません。私は同じ問題を経験しており、次のことを行っています。

  1. メッセージをデキューし、受信したメッセージにマークを付けました。
  2. try/catchブロック内で処理を実行します。例外がある場合は、将来のある時点で予定された配信で新しいメッセージをエンキューします。

サービスバスメッセージキューのペイロードは、配信試行回数を指定するクラスにラップされています。配信の試行回数に定数を掛けた後、将来のスケジュール配信のためにその数値を現在の日付時間に追加します。試行したい配信試行回数を超えた後、私たちは明示的にメッセージをデッドレターします。

関連する問題