public abstract class RetryContextSupport extends java.lang.Object implements RetryHandler.RetryContext
RetryHandler.RetryContext
の実装をサポートするクラス。Modifier | Constructor and Description |
---|---|
protected |
RetryContextSupport(long maxRetryTime,
long retryIntervals)
コンストラクタ。
|
Modifier and Type | Method and Description |
---|---|
protected void |
assertMaxRetryTime(long maxRetryTime,
long minRetryTime)
最長リトライ時間の設定値が正しいことを表明する。
最短リトライ時間以下の値が最長リトライ時間に指定された場合は実行時例外を送出する。
本メソッドはサブクラスの最長リトライ時間の設定処理において使用すること。
本メソッド呼び出し時はリトライを制御する方法に応じた最短リトライ時間を算出する必要がある。
例えば、リトライ回数によりリトライ制御する場合は、リトライ回数×リトライ間隔が最短リトライ時間となる。
|
int |
getCurrentRetryCount()
現在のリトライ回数を取得する。
|
boolean |
isRetryable()
リトライ可能か否かをリトライ状態から判定する。
|
protected abstract boolean |
onIsRetryable()
リトライ可能か否かをリトライ状態から判定する。
|
void |
prepareRetry()
リトライ前の準備を行う。
|
void |
reset()
リトライ状態をリセットする。
|
protected RetryContextSupport(long maxRetryTime, long retryIntervals)
maxRetryTime
- 最長リトライ時間(単位:msec)retryIntervals
- リトライ間隔(単位:msec)protected void assertMaxRetryTime(long maxRetryTime, long minRetryTime)
maxRetryTime
- 最長リトライ時間(単位:msec)minRetryTime
- 最短リトライ時間(単位:msec)public int getCurrentRetryCount()
getCurrentRetryCount
in interface RetryHandler.RetryContext
public boolean isRetryable()
reset()
メソッドを呼び出し、リトライ状態をリセットする。
判定処理はonIsRetryable()
メソッドに委譲する。isRetryable
in interface RetryHandler.RetryContext
protected abstract boolean onIsRetryable()
public void prepareRetry()
下記の処理を行う。 リトライ開始時間が設定されていなければ設定する。 リトライ間隔(単位:msec)プロパティの値が0より大きい場合は、指定された時間だけ待機する。 待機中にInterruptedExceptionを捕捉した場合は、WARNレベルのログ出力のみ行い、 呼び出し元に制御を返す。 現在のリトライ回数をカウントアップする。
prepareRetry
in interface RetryHandler.RetryContext
public void reset()
reset
in interface RetryHandler.RetryContext