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_VALUE
SE であることに注意してください。setMaxElapsedTime(long)
を使用して、BackOffExecution.STOP
を返す前にインスタンスが累積する最大時間を制限します。
修飾子と型 | フィールドと説明 |
---|---|
static long | DEFAULT_INITIAL_INTERVAL デフォルトの初期間隔。 |
static long | DEFAULT_MAX_ELAPSED_TIME デフォルトの最大経過時間。 |
static long | DEFAULT_MAX_INTERVAL デフォルトの最大バックオフ時間。 |
static double | DEFAULT_MULTIPLIER デフォルトの乗数(間隔を 50% 増やします)。 |
コンストラクターと説明 |
---|
ExponentialBackOff() デフォルト設定でインスタンスを作成します。 |
ExponentialBackOff(long initialInterval, double multiplier) 提供された設定でインスタンスを作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
long | getInitialInterval() 初期間隔をミリ秒で返します。 |
long | getMaxElapsedTime() BackOffExecution.nextBackOff() の呼び出しが BackOffExecution.STOP を返すまでの最大経過時間をミリ秒単位で返します。 |
long | getMaxInterval() 最大バックオフ時間を返します。 |
double | getMultiplier() 再試行のたびに現在の間隔に乗算する値を返します。 |
void | setInitialInterval(long initialInterval) ミリ秒単位の初期間隔。 |
void | setMaxElapsedTime(long maxElapsedTime) BackOffExecution.nextBackOff() の呼び出しが BackOffExecution.STOP を返すまでの最大経過時間(ミリ秒)。 |
void | setMaxInterval(long maxInterval) 最大バックオフ時間。 |
void | setMultiplier(double multiplier) 再試行ごとに現在の間隔を乗算する値。 |
BackOffExecution | start() 新しいバックオフ実行を開始します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public static final long DEFAULT_INITIAL_INTERVAL
public static final double DEFAULT_MULTIPLIER
public static final long DEFAULT_MAX_INTERVAL
public static final long DEFAULT_MAX_ELAPSED_TIME
public ExponentialBackOff()
public ExponentialBackOff(long initialInterval, double multiplier)
initialInterval
- ミリ秒単位の初期間隔 multiplier
- 乗数 (1 以上である必要があります)public void setInitialInterval(long initialInterval)
public long getInitialInterval()
public void setMultiplier(double multiplier)
public double getMultiplier()
public void setMaxInterval(long maxInterval)
public long getMaxInterval()
public void setMaxElapsedTime(long maxElapsedTime)
BackOffExecution.nextBackOff()
の呼び出しが BackOffExecution.STOP
を返すまでの最大経過時間(ミリ秒)。public long getMaxElapsedTime()
BackOffExecution.nextBackOff()
の呼び出しが BackOffExecution.STOP
を返すまでの最大経過時間をミリ秒単位で返します。public BackOffExecution start()
BackOff
BackOff
の start
BackOffExecution