クラス ExponentialBackOff

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

public class ExponentialBackOff extends ObjectSE implements BackOff
再試行のたびにバックオフ期間を延長する BackOff の実装。間隔が max interval に達すると、それ以上長くなりません。max elapsed time に達すると再試行を停止します。

サンプル: デフォルトの間隔は 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 であることに注意してください。setMaxElapsedTime(long) を使用して、BackOffExecution.STOP を返す前にインスタンスが累積する最大時間を制限します。

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

    • 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
      デフォルトの最大経過時間。
      関連事項:
  • コンストラクターの詳細

    • ExponentialBackOff

      public ExponentialBackOff()
      デフォルト設定でインスタンスを作成します。
      関連事項:
    • ExponentialBackOff

      public ExponentialBackOff(long initialInterval, double multiplier)
      提供された設定でインスタンスを作成します。
      パラメーター:
      initialInterval - ミリ秒単位の初期間隔
      multiplier - 乗数 (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 を返すまでの最大経過時間(ミリ秒)。
    • getMaxElapsedTime

      public long getMaxElapsedTime()
      BackOffExecution.nextBackOff() の呼び出しが BackOffExecution.STOP を返すまでの最大経過時間をミリ秒単位で返します。
    • start

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