Package nablarch.fw.handler.retry
Class TimeRetryContext
java.lang.Object
nablarch.fw.handler.retry.RetryContextSupport
nablarch.fw.handler.retry.TimeRetryContext
- All Implemented Interfaces:
RetryHandler.RetryContext
リトライ時間によりリトライ処理を制御するクラス。
本クラスは、指定された時間の間、リトライを行う。
- Author:
- Kiyohito Itoh
-
Constructor Summary
ModifierConstructorDescriptionprotected
TimeRetryContext
(long retryTime, long maxRetryTime, long retryIntervals) コンストラクタ。 -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
リトライ可能か否かをリトライ状態から判定する。void
リトライ前の準備を行う。void
reset()
リトライ状態をリセットする。Methods inherited from class nablarch.fw.handler.retry.RetryContextSupport
assertMaxRetryTime, getCurrentRetryCount, isRetryable
-
Constructor Details
-
TimeRetryContext
protected TimeRetryContext(long retryTime, long maxRetryTime, long retryIntervals) コンストラクタ。- Parameters:
retryTime
- リトライ時間(単位:msec)maxRetryTime
- 最長リトライ時間(単位:msec)retryIntervals
- リトライ間隔(単位:msec)
-
-
Method Details
-
onIsRetryable
protected boolean onIsRetryable()リトライ可能か否かをリトライ状態から判定する。 1回目のリトライである場合はtrueを返す。 2回目以降のリトライでは、 リトライ開始後の経過時間がリトライ時間プロパティ以下の場合にtrueを返す。- Specified by:
onIsRetryable
in classRetryContextSupport
- Returns:
- リトライ可能な場合はtrue
-
prepareRetry
public void prepareRetry()リトライ前の準備を行う。下記の処理を行う。 リトライ開始時間が設定されていなければ設定する。 リトライ間隔(単位:msec)プロパティの値が0より大きい場合は、指定された時間だけ待機する。 待機中にInterruptedExceptionを捕捉した場合は、WARNレベルのログ出力のみ行い、 呼び出し元に制御を返す。 現在のリトライ回数をカウントアップする。
1回目のリトライである場合は、親クラスの処理に加えて、リトライ開始時間の設定を行う。- Specified by:
prepareRetry
in interfaceRetryHandler.RetryContext
- Overrides:
prepareRetry
in classRetryContextSupport
-
reset
public void reset()リトライ状態をリセットする。 リトライ開始時間を未設定にする。 現在のリトライ回数に0を設定する。 親クラスの処理に加えて、リトライ開始時間をリセットする。- Specified by:
reset
in interfaceRetryHandler.RetryContext
- Overrides:
reset
in classRetryContextSupport
-