2017-10-24 13 views
1

私のSpringBootアプリケーションでは、クライアントがPOSTリクエストを送信できます。 POST中には、いくつかの例外があります。Springで異なる例外の再試行が異なる@Retryable

2つの異なる例外の場合には、再試行ロジックが必要です。しかし、max-retry-attemptは、各例外に対して有効であり、一緒にではありません。説明が難しいが、例:

max-retry-attemptsは3に設定されています。再試行よりもexception1のタイプを取得した場合、2回の再試行があります。もう一度やり直してexception1を取得してから、もう一度やり直してみてください。もう一度やり直してみてください。次に例外2を取得してから試してみてください。前回の再試行は例外1のためであったが、例外2のためのものではなかったため、2回再試行しました。したがって、例外2の再試行が始まったばかりです。

それは可能ですか?私はこれを試してみましたが、これは別の例外の再試行の試み上で起動していない、exception1が発生し、その後exception2が発生した場合は、その後、私は左に1回のリトライた:

@Retryable(maxAttempts = 3, value = {Exception1.class, Exception2.class}, backoff = @Backoff(delay = 3000, multiplier = 2)) 

答えて

1

をカスタム再試行ポリシーを作成する必要があります; RetryTemplateRetryOperationsInterceptorに設定します。アノテーション上のinterceptorプロパティを使用してインターセプタを参照します。

+0

この例はありますか?私が記述したように動作するためには、異なる例外を持つ適切な例を見つけることができなかったからです。 – victorio

+1

いいえ。私が言ったように、そのロジックを追加するカスタムポリシーを作成する必要があります。 –

関連する問題