クラス ExponentialBackOff
java.lang.ObjectSE
org.springframework.util.backoff.ExponentialBackOff
- 実装されたすべてのインターフェース:
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_VALUE
SE であることに注意してください。setMaxElapsedTime(long)
を使用して、BackOffExecution.STOP
を返す前にインスタンスが累積する最大時間を制限します。
- 導入:
- 4.1
- 作成者:
- Stephane Nicoll
フィールドサマリー
修飾子と型フィールド説明static final long
デフォルトの初期間隔。static final long
デフォルトの最大経過時間。static final long
デフォルトの最大バックオフ時間。static final double
デフォルトの乗数(間隔を 50% 増やします)。コンストラクターのサマリー
コンストラクター説明デフォルト設定でインスタンスを作成します。ExponentialBackOff
(long initialInterval, double multiplier) 提供された設定でインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明long
初期間隔をミリ秒で返します。long
BackOffExecution.nextBackOff()
の呼び出しがBackOffExecution.STOP
を返すまでの最大経過時間をミリ秒単位で返します。long
最大バックオフ時間を返します。double
再試行のたびに現在の間隔に乗算する値を返します。void
setInitialInterval
(long initialInterval) ミリ秒単位の初期間隔。void
setMaxElapsedTime
(long maxElapsedTime) BackOffExecution.nextBackOff()
の呼び出しがBackOffExecution.STOP
を返すまでの最大経過時間(ミリ秒)。void
setMaxInterval
(long maxInterval) 最大バックオフ時間。void
setMultiplier
(double multiplier) 再試行ごとに現在の間隔を乗算する値。start()
新しいバックオフ実行を開始します。
フィールドの詳細
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
インターフェースからコピーされた説明:BackOff
新しいバックオフ実行を開始します。- 次で指定:
- インターフェース
BackOff
のstart
- 戻り値:
- すぐに使用できる新しい
BackOffExecution