クラス ExponentialBackOff

java.lang.ObjectSE
org.springframework.util.backoff.ExponentialBackOff
実装されているすべてのインターフェース:
BackOff

public class ExponentialBackOff extends ObjectSE implements BackOff
各試行のバックオフ期間を増やす BackOff の実装。間隔が最大間隔に達すると、それ以上は増加しません。最大経過時間または最大試行回数に達すると停止します。

サンプル: デフォルトの間隔は 2000L ミリ秒です。デフォルトの乗数は 1.5 です。デフォルトの最大間隔は 30000L です。10 回の試行の場合、シーケンスは次のようになります。

request#     back-off

 1              2000
 2              3000
 3              4500
 4              6750
 5             10125
 6             15187
 7             22780
 8             30000
 9             30000
10             30000

デフォルトの最大経過時間は Long.MAX_VALUESE、デフォルトの最大試行回数は Integer.MAX_VALUESE であることに注意してください。setMaxElapsedTime(long) を使用して、インスタンスが BackOffExecution.STOP を返すまでに蓄積する時間を制限します。または、setMaxAttempts(long) を使用して試行回数を制限します。これら 2 つの制限のいずれかに達すると、実行が停止します。

導入:
4.1
作成者:
Stephane Nicoll, Gary Russell, Juergen Hoeller
  • フィールドの詳細

    • DEFAULT_INITIAL_INTERVAL

      public static final long DEFAULT_INITIAL_INTERVAL
      デフォルトの初期間隔: 2000L ms
      関連事項:
    • DEFAULT_JITTER

      public static final long DEFAULT_JITTER
      各間隔のデフォルトのジッター値: 0L ms。
      導入:
      7.0
      関連事項:
    • DEFAULT_MULTIPLIER

      public static final double DEFAULT_MULTIPLIER
      デフォルトの乗数(間隔を 50% 増加): 1.5。
      関連事項:
    • DEFAULT_MAX_INTERVAL

      public static final long DEFAULT_MAX_INTERVAL
      デフォルトの最大バックオフ時間: 30000L ミリ秒。
      関連事項:
    • DEFAULT_MAX_ELAPSED_TIME

      public static final long DEFAULT_MAX_ELAPSED_TIME
      デフォルトの最大経過時間: 無制限。
      関連事項:
    • DEFAULT_MAX_ATTEMPTS

      public static final long DEFAULT_MAX_ATTEMPTS
      デフォルトの最大試行回数: 無制限。
      導入:
      6.1
      関連事項:
  • コンストラクターの詳細

  • メソッドの詳細

    • setInitialInterval

      public void setInitialInterval(long initialInterval)
      初期間隔を設定します。
      パラメーター:
      initialInterval - ミリ秒単位の初期間隔
    • getInitialInterval

      public long getInitialInterval()
      初期間隔をミリ秒で返します。
    • setJitter

      public void setJitter(long jitter)
      各間隔に適用するジッター値を設定します。ランダムなミリ秒が減算または加算され、interval - jitter と interval + jitter の間の値になりますが、initialInterval を下回ったり、maxInterval を上回ることはありません。

      multiplier が指定されている場合は、ジッタ値にも適用されます。

      パラメーター:
      jitter - ジッター値(ミリ秒)
      導入:
      7.0
    • getJitter

      public long getJitter()
      各間隔に適用するジッター値をミリ秒単位で返します。
      導入:
      7.0
    • setMultiplier

      public void setMultiplier(double multiplier)
      各試行ごとに現在の間隔に掛ける値を設定します。

      これは初期間隔ジッター範囲に適用されます。

      パラメーター:
      multiplier - 乗数 (1 以上である必要があります)
    • getMultiplier

      public double getMultiplier()
      各試行ごとに現在の間隔に掛ける値を返します。
    • setMaxInterval

      public void setMaxInterval(long maxInterval)
      最大バックオフ時間をミリ秒単位で設定します。
    • getMaxInterval

      public long getMaxInterval()
      最大バックオフ時間をミリ秒単位で返します。
    • setMaxElapsedTime

      public void setMaxElapsedTime(long maxElapsedTime)
      BackOffExecution.nextBackOff() の呼び出しが BackOffExecution.STOP を返すまでの最大経過時間をミリ秒単位で設定します。
      パラメーター:
      maxElapsedTime - 最大経過時間
      関連事項:
    • getMaxElapsedTime

      public long getMaxElapsedTime()
      BackOffExecution.nextBackOff() の呼び出しが BackOffExecution.STOP を返すまでの最大経過時間をミリ秒単位で返します。
      戻り値:
      最大経過時間
      関連事項:
    • setMaxAttempts

      public void setMaxAttempts(long maxAttempts)
      BackOffExecution.nextBackOff() への呼び出しが BackOffExecution.STOP を返すまでの最大試行回数。
      パラメーター:
      maxAttempts - 最大試行回数
      導入:
      6.1
      関連事項:
    • getMaxAttempts

      public long getMaxAttempts()
      BackOffExecution.nextBackOff() の呼び出しが BackOffExecution.STOP を返すまでの最大試行回数を返します。
      戻り値:
      最大試行回数
      導入:
      6.1
      関連事項:
    • start

      public BackOffExecution start()
      インターフェースからコピーされた説明: BackOff
      新しいバックオフ実行を開始します。
      次で指定:
      インターフェース BackOffstart 
      戻り値:
      すぐに使用できる新しい BackOffExecution
    • toString

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