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