クラス 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(int) を使用して試行回数を制限します。これら 2 つの制限のいずれかに達すると、実行が停止します。

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

    • DEFAULT_INITIAL_INTERVAL

      public static final long DEFAULT_INITIAL_INTERVAL
      デフォルトの初期間隔。
      関連事項:
    • DEFAULT_MULTIPLIER

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

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

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

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

  • メソッドの詳細

    • setInitialInterval

      public void setInitialInterval(long initialInterval)
      初期間隔をミリ秒単位で設定します。
    • getInitialInterval

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

      public void setMultiplier(double multiplier)
      再試行ごとに現在の間隔を乗算する値を設定します。
    • 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(int maxAttempts)
      BackOffExecution.nextBackOff() への呼び出しが BackOffExecution.STOP を返すまでの最大試行回数。
      パラメーター:
      maxAttempts - 最大試行回数
      導入:
      6.1
      関連事項:
    • getMaxAttempts

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

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

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