アノテーションインターフェース Retryable


個々のメソッド、または型レベルでアノテーションが付けられている場合は特定のクラス階層内のすべてのプロキシ呼び出しメソッドの再試行特性を指定する共通アノテーション。

RetryTemplate および Reactor の再試行サポートに合わせて、命令型のターゲットメソッドを再度呼び出すか、それに応じてリアクティブ結果を装飾します。

Spring Retry プロジェクトに触発されましたが、Spring Framework の最小限のコア再試行機能として再設計されました。

導入:
7.0
作成者:
Juergen Hoeller
関連事項:
  • 要素の詳細

    • value

      @AliasFor("includes") ClassSE<? extends ThrowableSE>[] value
      includes() の便利なデフォルト属性。通常、再試行する単一の例外型で使用されます。
      デフォルト:
      {}
    • includes

      @AliasFor("value") ClassSE<? extends ThrowableSE>[] includes
      再試行の対象となる例外の種類。この属性を使用すると、割り当て可能な例外の種類を簡単に指定できます。

      デフォルトは空で、例外が発生した場合は再試行が行われます。

      関連事項:
      デフォルト:
      {}
    • excludes

      ClassSE<? extends ThrowableSE>[] excludes
      再試行を回避したい適用外の例外型。この属性を使用すると、割り当て可能な例外型を簡単に指定できます。

      デフォルトは空で、例外が発生した場合は再試行が行われます。

      関連事項:
      デフォルト:
      {}
    • predicate

      ClassSE<? extends MethodRetryPredicate> predicate
      呼び出しを再試行できる適用可能な例外をフィルタリングするための述語。

      デフォルトでは、すべての例外に対して再試行が行われます。

      指定された MethodRetryPredicate 実装はメソッドごとにインスタンス化されます。他の Bean や機能へのアクセスが必要な場合は、コンストラクターレベルでの依存性注入、またはオートワイヤリングアノテーションを通じて依存性注入を使用できます。

      関連事項:
      デフォルト:
      org.springframework.resilience.retry.MethodRetryPredicate.class
    • maxAttempts

      long maxAttempts
      最初の呼び出しに加えて再試行できる最大回数。

      デフォルトは 3 です。

      デフォルト:
      3L
    • maxAttemptsString

      StringSE maxAttemptsString
      設定可能な文字列で、再試行の最大回数を指定します。ここで空でない値を指定すると、maxAttempts() 属性が上書きされます。

      これは、Spring スタイルの "${...}" プレースホルダーと SpEL 式をサポートします。

      関連事項:
      デフォルト:
      ""
    • delay

      long delay
      最初の呼び出し後の基本遅延。乗数が指定されている場合は、これが乗算される初期遅延として機能します。

      時間の単位はデフォルトでミリ秒ですが、timeUnit() を介してオーバーライドできます。

      0 以上である必要があります。デフォルトは 1000 です。

      関連事項:
      デフォルト:
      1000L
    • delayString

      StringSE delayString
      最初の呼び出し後の基本遅延(期間文字列)。ここで指定された空でない値は、delay() 属性をオーバーライドします。

      期間文字列にはいくつかの形式があります:

      • 単純な整数 - timeUnit() で上書きされない限り、デフォルトではミリ秒単位の期間を表すと解釈されます。(その場合は delay() を使用することをお勧めします)
      • 既知の DurationFormat.Style のいずれか: ISO8601 スタイルまたは SIMPLE スタイル - 文字列に明示的な単位が含まれていない場合は、timeUnit() をフォールバックとして使用します
      • 上記のいずれか、Spring スタイルの "${...}" プレースホルダーと SpEL 式を使用
      戻り値:
      初期遅延を文字列値として指定します。たとえば、プレースホルダ、java.time.Duration 準拠の値、simple format 準拠の値などです。
      関連事項:
      デフォルト:
      ""
    • jitter

      long jitter
      ベースとなる再試行のジッター値。計算された遅延値からランダムに減算または加算され、結果は delay - jitter と delay + jitter の間となりますが、ベースとなる delay() を下回ったり、maxDelay() を上回ったりすることはありません。乗数が指定されている場合は、ジッター値にも適用されます。

      時間の単位はデフォルトでミリ秒ですが、timeUnit() を介してオーバーライドできます。

      デフォルトは 0 (ジッターなし) です。

      関連事項:
      デフォルト:
      0L
    • jitterString

      StringSE jitterString
      基本再試行のジッター値(期間文字列)。ここで指定された空でない値は、jitter() 属性をオーバーライドします。

      期間文字列にはいくつかの形式があります:

      • 単純な整数 - timeUnit() で上書きされない限り、デフォルトではミリ秒単位の期間を表すと解釈されます。(その場合は jitter() を使用することをお勧めします)
      • 既知の DurationFormat.Style のいずれか: ISO8601 スタイルまたは SIMPLE スタイル - 文字列に明示的な単位が含まれていない場合は、timeUnit() をフォールバックとして使用します
      • 上記のいずれか、Spring スタイルの "${...}" プレースホルダーと SpEL 式を使用
      戻り値:
      初期遅延を文字列値として指定します。たとえば、プレースホルダ、java.time.Duration 準拠の値、simple format 準拠の値などです。
      関連事項:
      デフォルト:
      ""
    • multiplier

      double multiplier
      次の再試行の遅延の乗数。前回の遅延 (delay() から始まる) と各試行の適用可能な jitter() に適用されます。

      デフォルトは 1.0 であり、実質的に固定遅延が発生します。

      関連事項:
      デフォルト:
      1.0
    • multiplierString

      StringSE multiplierString
      次回の再試行までの遅延の乗数(設定可能な文字列)。ここで指定された空でない値は、multiplier() 属性をオーバーライドします。

      これは、Spring スタイルの "${...}" プレースホルダーと SpEL 式をサポートします。

      関連事項:
      デフォルト:
      ""
    • maxDelay

      long maxDelay
      再試行の最大遅延。jitter()multiplier()遅延をどれだけ増加できるかを制限します。

      時間の単位はデフォルトでミリ秒ですが、timeUnit() を介してオーバーライドできます。

      デフォルトは無制限です。

      関連事項:
      デフォルト:
      9223372036854775807L
    • maxDelayString

      StringSE maxDelayString
      再試行の最大遅延時間(期間文字列)。ここで指定された空でない値は、maxDelay() 属性をオーバーライドします。

      期間文字列にはいくつかの形式があります:

      • 単純な整数 - timeUnit() で上書きされない限り、デフォルトではミリ秒単位の期間を表すと解釈されます。(その場合は maxDelay() を使用することをお勧めします)
      • 既知の DurationFormat.Style のいずれか: ISO8601 スタイルまたは SIMPLE スタイル - 文字列に明示的な単位が含まれていない場合は、timeUnit() をフォールバックとして使用します
      • 上記のいずれか、Spring スタイルの "${...}" プレースホルダーと SpEL 式を使用
      戻り値:
      初期遅延を文字列値として指定します。たとえば、プレースホルダ、java.time.Duration 準拠の値、simple format 準拠の値などです。
      関連事項:
      デフォルト:
      ""
    • timeUnit

      TimeUnitSE timeUnit
      delay()delayString()jitter()jitterString()maxDelay()maxDelayString() に使用する TimeUnitSE

      デフォルトは TimeUnit.MILLISECONDSSE です。

      この属性は、delayString()jitterString()、または maxDelayString() を介して提供される DurationSE 値では無視されます。

      戻り値:
      使用する TimeUnit 
      デフォルト:
      MILLISECONDS