モジュール spring.retry

クラス SimpleRetryPolicy

java.lang.ObjectSE
org.springframework.retry.policy.SimpleRetryPolicy
実装済みのインターフェース一覧:
SerializableSERetryPolicy
既知の直属サブクラス
ExpressionRetryPolicy

public class SimpleRetryPolicy extends ObjectSE implements RetryPolicy
名前付き例外 (およびサブクラス) のセットに対して固定回数再試行する単純な再試行ポリシー。試行回数には最初の試行も含まれます。たとえば
 retryTemplate = new RetryTemplate(new SimpleRetryPolicy(3));
 retryTemplate.execute(callback);
 
コールバックは少なくとも 1 回、最大 3 回実行されます。

バージョン 1.3 以降では、このクラスを使用する必要はありません。同じ動作は、内部に MaxAttemptsRetryPolicyBinaryExceptionClassifierRetryPolicy を含む CompositeRetryPolicy を構築することで実現できます。これは実際には次のように実行されます。

 RetryTemplate.builder()
                  .maxAttempts(3)
                  .retryOn(Exception.class)
                  .build();
 
または RetryTemplate.defaultInstance()
作成者:
Dave Syer, Rob Harrop, Gary Russell, Aleksandr Shamukov, Artem Bilan, Emanuele Ivaldi
関連事項:
  • フィールドの詳細

    • DEFAULT_MAX_ATTEMPTS

      public static final int DEFAULT_MAX_ATTEMPTS
      新しいポリシーの試行回数のデフォルトの制限。
      関連事項:
  • コンストラクターの詳細

    • SimpleRetryPolicy

      public SimpleRetryPolicy()
      デフォルトの再試行回数で SimpleRetryPolicy を作成し、すべての例外を再試行します。
    • SimpleRetryPolicy

      public SimpleRetryPolicy(int maxAttempts)
      指定された再試行回数で SimpleRetryPolicy を作成し、すべての例外を再試行します。
      パラメーター:
      maxAttempts - 最大試行回数
    • SimpleRetryPolicy

      public SimpleRetryPolicy(int maxAttempts, MapSE<ClassSE<? extends ThrowableSE>,BooleanSE> retryableExceptions)
      指定された再試行回数で SimpleRetryPolicy を作成します。
      パラメーター:
      maxAttempts - 最大試行回数
      retryableExceptions - 再試行可能な例外のマップ
    • SimpleRetryPolicy

      public SimpleRetryPolicy(int maxAttempts, MapSE<ClassSE<? extends ThrowableSE>,BooleanSE> retryableExceptions, boolean traverseCauses)
      指定された再試行回数で SimpleRetryPolicy を作成します。traverseCauses が true の場合、一致するか根本原因が見つかるまで例外原因が調べられます。
      パラメーター:
      maxAttempts - 最大試行回数
      retryableExceptions - マップ値 (true/false) に基づいて再試行可能な例外のマップ。
      traverseCauses - 分類された例外が見つかるか、根本原因に到達するまで、例外原因 チェーンを走査する場合は true です。
    • SimpleRetryPolicy

      public SimpleRetryPolicy(int maxAttempts, MapSE<ClassSE<? extends ThrowableSE>,BooleanSE> retryableExceptions, boolean traverseCauses, boolean defaultValue)
      指定された再試行回数で SimpleRetryPolicy を作成します。traverseCauses が true の場合、一致するか根本原因が見つかるまで例外原因が調べられます。デフォルト値は、マップ内に見つからない例外 (またはそのスーパークラス) を再試行するかどうかを示します。
      パラメーター:
      maxAttempts - 最大試行回数
      retryableExceptions - マップ値 (true/false) に基づいて再試行可能な例外のマップ。
      traverseCauses - 分類された例外が見つかるか、根本原因に到達するまで、例外原因 チェーンを走査する場合は true です。
      defaultValue - デフォルトのアクション。
    • SimpleRetryPolicy

      public SimpleRetryPolicy(int maxAttempts, BinaryExceptionClassifier classifier)
      指定された再試行回数と提供された例外分類子を使用して SimpleRetryPolicy を作成します。
      パラメーター:
      maxAttempts - 最大試行回数
      classifier - カスタム例外分類子
  • 方法の詳細

    • setMaxAttempts

      public void setMaxAttempts(int maxAttempts)
      再試行が完了するまでの試行回数を設定します。再試行開始前の最初の試行も含まれるため、通常は >= 1 になります。たとえば、このプロパティを 3 に設定すると、合計 3 回の試行 (最初の試行 + 2 回の再試行) が行われます。
      パラメーター:
      maxAttempts - 最初の試行を含む最大試行回数。
    • setNotRecoverable

      public void setNotRecoverable(ClassSE<? extends ThrowableSE>... noRecovery)
      リカバーラー(存在する場合)に渡されず、すぐにスローされるスロー可能オブジェクトを構成します。
      パラメーター:
      noRecovery - 投げ物。
      導入:
      3.0
    • maxAttemptsSupplier

      public void maxAttemptsSupplier(SupplierSE<IntegerSE> maxAttemptsSupplier)
      再試行回数のサプライヤーを設定します。再試行開始前の最初の試行も含まれるため、通常は >= 1 になります。たとえば、このプロパティを 3 に設定すると、合計 3 回の試行 (最初の試行 + 2 回の再試行) が行われます。重要: 最大試行回数サプライヤーが指定されている場合、このポリシーは直列化できません。このポリシーを CircuitBreaker コンテキストで使用する場合、分散キャッシュによって直列化が使用されることがあります。
      パラメーター:
      maxAttemptsSupplier - 最初の試行を含む最大試行回数。
      導入:
      2.0
    • getMaxAttempts

      public int getMaxAttempts()
      失敗するまでの最大試行回数。
      次で指定:
      インターフェース RetryPolicy 内の getMaxAttempts 
      戻り値:
      最大試行回数
    • canRetry

      public boolean canRetry(RetryContext context)
      ステータスに基づいて再試行可能な操作をテストします。
      次で指定:
      インターフェース RetryPolicy 内の canRetry 
      パラメーター:
      context - 現在の再試行ステータス
      戻り値:
      最後の例外が再試行可能であり、これまでの試行回数が制限未満である場合は true です。
      関連事項:
    • close

      public void close(RetryContext status)
      次で指定:
      インターフェース RetryPolicy 内の close 
      パラメーター:
      status - このポリシーの RetryPolicy.open(RetryContext) メソッドによって作成された再試行ステータス。
      関連事項:
    • registerThrowable

      public void registerThrowable(RetryContext context, ThrowableSE throwable)
      別の再試行と最新の例外でステータスを更新します。
      次で指定:
      インターフェース RetryPolicy 内の registerThrowable 
      パラメーター:
      context - 現在のステータスオブジェクト。
      throwable - スローする例外
      関連事項:
    • open

      public RetryContext open(RetryContext parent)
      このポリシーに従って現在の操作を追跡するために使用できるステータスオブジェクトを取得します。最新の例外と試行回数に注意する必要があります。
      次で指定:
      インターフェース RetryPolicy 内の open 
      パラメーター:
      parent - ネストされた再試行の場合は親コンテキスト。
      戻り値:
      このポリシーに固有の RetryContext オブジェクト。
      関連事項:
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString