モジュール spring.retry

クラス ExponentialBackOffPolicy

java.lang.ObjectSE
org.springframework.retry.backoff.ExponentialBackOffPolicy
実装済みのインターフェース一覧:
BackOffPolicySleepingBackOffPolicy<ExponentialBackOffPolicy>
既知の直属サブクラス
ExponentialRandomBackOffPolicy

public class ExponentialBackOffPolicy extends ObjectSE implements SleepingBackOffPolicy<ExponentialBackOffPolicy>
特定の設定で再試行のバックオフ期間を制限まで増やす BackOffPolicy の実装。この実装はスレッドセーフで、同時アクセスに適しています。構成を変更しても、すでに進行中の再試行セットには影響しません。setInitialInterval(long) プロパティは最初の再試行の初期遅延値を制御し、setMultiplier(double) プロパティは後続の試行ごとに遅延をどれだけ増やすかを制御します。遅延間隔の上限は setMaxInterval(long) です。
作成者:
Rob Harrop, Dave Syer, Gary Russell, Artem Bilan, Marius Lichtblau, Anton Aharkau, Kim Sumin
  • フィールドの詳細

    • logger

      protected final org.apache.commons.logging.Log logger
    • DEFAULT_INITIAL_INTERVAL

      public static final long DEFAULT_INITIAL_INTERVAL
      デフォルトの "initialInterval" 値 - 100 ミリ秒。デフォルトの「乗数」値と組み合わせると、1 ~ 5 回の再試行の便利な初期休止範囲が得られます。
      関連事項:
    • DEFAULT_MAX_INTERVAL

      public static final long DEFAULT_MAX_INTERVAL
      デフォルトの最大バックオフ時間 (30 秒)。
      関連事項:
    • DEFAULT_MULTIPLIER

      public static final double DEFAULT_MULTIPLIER
      デフォルトの「乗数」値 - バックオフごとに増加する値 2 (100%。
      関連事項:
  • コンストラクターの詳細

    • ExponentialBackOffPolicy

      public ExponentialBackOffPolicy()
  • 方法の詳細

    • setSleeper

      public void setSleeper(Sleeper sleeper)
      Sleeper 戦略のパブリック setter。
      パラメーター:
      sleeper - 設定するスリーパーはデフォルトで ThreadWaitSleeper になります。
    • withSleeper

      public ExponentialBackOffPolicy withSleeper(Sleeper sleeper)
      インターフェースからコピーされた説明: SleepingBackOffPolicy
      ポリシーを複製し、渡されたスリーパーを使用する新しいポリシーを返します。
      次で指定:
      インターフェース SleepingBackOffPolicy<ExponentialBackOffPolicy> 内の withSleeper 
      パラメーター:
      sleeper - バックオフポリシーがスリープするたびに呼び出されるターゲット
      戻り値:
      このポリシーのクローンで、そのバックオフスリープはすべて渡されたスリーパーにルーティングされます。
    • newInstance

      protected ExponentialBackOffPolicy newInstance()
    • cloneValues

      protected void cloneValues(ExponentialBackOffPolicy target)
    • setInitialInterval

      public void setInitialInterval(long initialInterval)
      初期スリープ間隔値を設定します。デフォルトは 100 ミリ秒です。1 未満の値には設定できません。
      パラメーター:
      initialInterval - 初期間隔
    • setMultiplier

      public void setMultiplier(double multiplier)
      乗数値を設定します。デフォルトは '2.0' です。ヒント: 1.0 を大幅に超える値は使用しないでください (そうしないと、バックオフがすぐに非常に長くなります)。
      パラメーター:
      multiplier - 乗数
    • setMaxInterval

      public void setMaxInterval(long maxInterval)
      最大バックオフ期間は Setter です。デフォルトは 30000 (30 秒です。このメソッドが 1 未満の値で呼び出されると、値は 1 にリセットされます。バックオフを多数回行う場合 (または乗数が高すぎる場合) に無限待機を回避するには、これを設定します。
      パラメーター:
      maxInterval - ミリ秒単位。
    • initialIntervalSupplier

      public void initialIntervalSupplier(SupplierSE<LongSE> initialIntervalSupplier)
      初期スリープ間隔値を設定します。デフォルトのサプライヤーは 100 ミリ秒を提供します。
      パラメーター:
      initialIntervalSupplier - 初期間隔
      導入:
      2.0
    • multiplierSupplier

      public void multiplierSupplier(SupplierSE<DoubleSE> multiplierSupplier)
      乗数値を設定します。デフォルトのサプライヤーは '2.0' を提供します。ヒント: 1.0 を大幅に超える値は使用しないでください (そうしないと、バックオフがすぐに非常に長くなります)。
      パラメーター:
      multiplierSupplier - 乗数
      導入:
      2.0
    • maxIntervalSupplier

      public void maxIntervalSupplier(SupplierSE<LongSE> maxIntervalSupplier)
      最大バックオフ期間は Setter です。デフォルトは 30000 (30 秒です。このメソッドが 1 未満の値で呼び出されると、値は 1 にリセットされます。バックオフを多数回行う場合 (または乗数が高すぎる場合) に無限待機を回避するには、これを設定します。
      パラメーター:
      maxIntervalSupplier - ミリ秒単位。
      導入:
      2.0
    • getInitialIntervalSupplier

      protected SupplierSE<LongSE> getInitialIntervalSupplier()
    • getMaxIntervalSupplier

      protected SupplierSE<LongSE> getMaxIntervalSupplier()
    • getMultiplierSupplier

      protected SupplierSE<DoubleSE> getMultiplierSupplier()
    • getInitialInterval

      public long getInitialInterval()
      最初のバックオフでスリープする初期期間。
      戻り値:
      初期間隔
    • getMaxInterval

      public long getMaxInterval()
      スリープする最大間隔。デフォルトは 30 秒です。
      戻り値:
      最大間隔。
    • getMultiplier

      public double getMultiplier()
      前回のバックオフ間隔から次のバックオフ間隔を生成するために使用する乗数。
      戻り値:
      使用されている乗数
    • start

      public BackOffContext start(RetryContext context)
      構成されたプロパティを持つ BackOffContext の新しいインスタンスを返します。
      次で指定:
      インターフェース BackOffPolicy 内の start 
      パラメーター:
      context - RetryContext コンテキストには、今後の進め方を決定するために使用できる情報が含まれている可能性があります。
      戻り値:
      実装固有の BackOffContext または 'null'。
    • backOff

      public void backOff(BackOffContext backOffContext) throws BackOffInterruptedException
      現在のバックオフ間隔の間一時停止します。
      次で指定:
      インターフェース BackOffPolicy 内の backOff 
      パラメーター:
      backOffContext - BackOffContext
      例外:
      BackOffInterruptedException - 後退の試みが中断された場合。
    • toString

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