Class TimeRetryContext

java.lang.Object
nablarch.fw.handler.retry.RetryContextSupport
nablarch.fw.handler.retry.TimeRetryContext
All Implemented Interfaces:
RetryHandler.RetryContext

@Published(tag="architect") public class TimeRetryContext extends RetryContextSupport
リトライ時間によりリトライ処理を制御するクラス。

本クラスは、指定された時間の間、リトライを行う。

Author:
Kiyohito Itoh
  • 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 class RetryContextSupport
      Returns:
      リトライ可能な場合はtrue
    • prepareRetry

      public void prepareRetry()
      リトライ前の準備を行う。
       下記の処理を行う。
       
         リトライ開始時間が設定されていなければ設定する。
         リトライ間隔(単位:msec)プロパティの値が0より大きい場合は、指定された時間だけ待機する。
         待機中にInterruptedExceptionを捕捉した場合は、WARNレベルのログ出力のみ行い、
         呼び出し元に制御を返す。
         現在のリトライ回数をカウントアップする。
       
       

      1回目のリトライである場合は、親クラスの処理に加えて、リトライ開始時間の設定を行う。

      Specified by:
      prepareRetry in interface RetryHandler.RetryContext
      Overrides:
      prepareRetry in class RetryContextSupport
    • reset

      public void reset()
      リトライ状態をリセットする。

      リトライ開始時間を未設定にする。 現在のリトライ回数に0を設定する。

      親クラスの処理に加えて、リトライ開始時間をリセットする。

      Specified by:
      reset in interface RetryHandler.RetryContext
      Overrides:
      reset in class RetryContextSupport