クラス RepeatTemplate

java.lang.ObjectSE
org.springframework.batch.repeat.support.RepeatTemplate
実装されたすべてのインターフェース:
RepeatOperations
既知の直属サブクラス
TaskExecutorRepeatTemplate

public class RepeatTemplate extends ObjectSE implements RepeatOperations
RepeatOperations を実装するバッチテンプレートの単純な実装と基本クラス。インターセプターとポリシーを含むフレームワークを提供します。サブクラスは、次の結果を取得するメソッドと、並行プロセスまたはスレッドからすべての結果が返されるのを待つメソッドを提供するだけで済みます。
注意: テンプレートは反復中にスローされた例外を蓄積し、メインループが終了すると (つまり、アイテムの処理が終了すると)、それらはすべて一緒に処理されます。例外がスローされたときに実行を停止したくないクライアントは、例外を受け取ったときに終了しない特定の CompletionPolicy を使用できます。これはデフォルトの動作ではありません。
RepeatCallback によって例外がスローされたときに何らかのビジネスアクションを実行したいクライアントは、CompletionPolicy をカスタマイズしようとする代わりに、カスタム RepeatListener を使用することを検討できます。通常、これは実装しやすいインターフェースであり、コールバックの結果として RepeatListener.after(RepeatContext, RepeatStatus) メソッドが渡されます。これは、ビジネスプロセスが例外をスローした場合は ThrowableSE のインスタンスになります。例外が呼び出し元に伝搬されない場合は、デフォルト以外の CompletionPolicy も提供する必要がありますが、ビジネスアクションがインターセプターにのみ実装されているため、既製のものである可能性があります。
作成者:
Dave Syer, Mahmoud Ben Hassine
  • フィールドの詳細

    • logger

      protected org.apache.commons.logging.Log logger
  • コンストラクターの詳細

    • RepeatTemplate

      public RepeatTemplate()
  • メソッドの詳細

    • setListeners

      public void setListeners(RepeatListener[] listeners)
      このテンプレートのリスナーを設定し、繰り返しの適切なタイミングでコールバックに登録します。
      パラメーター:
      listeners - 使用するリスナー
    • registerListener

      public void registerListener(RepeatListener listener)
      追加のリスナーを登録します。
      パラメーター:
      listener - リストに追加される単一のリスナー
    • setExceptionHandler

      public void setExceptionHandler(ExceptionHandler exceptionHandler)
      例外ハンドラー戦略の Setter。例外ハンドラーは、CompletionPolicy がバッチが完了したと判断した後、バッチの最後に呼び出されます。デフォルトでは、すべての例外が再スローされます。
      パラメーター:
      exceptionHandler - 使用する ExceptionHandler
      関連事項:
    • setCompletionPolicy

      public void setCompletionPolicy(CompletionPolicy terminationPolicy)
      バッチがいつ完了するかを決定するポリシーの Setter。デフォルトでは、コールバックが継続可能としてマークされていない RepeatStatus を返したときに正常に完了し、コールバックが例外をスローしたときに異常終了します(ただし、例外を再スローする決定は ExceptionHandler に延期されます)。
      パラメーター:
      terminationPolicy - TerminationPolicy。
      例外:
      IllegalArgumentExceptionSE - 引数が null の場合
      関連事項:
    • iterate

      public RepeatStatus iterate(RepeatCallback callback)
      完了ポリシーが完了したと判断するまで、バッチコールバックを実行します。タスクエグゼキュータが非同期であっても、バッチ全体が完了するまで待ってから戻ります。
      次で指定:
      インターフェース RepeatOperationsiterate 
      パラメーター:
      callback - バッチコールバック。
      戻り値:
      すべてのコールバック操作の結果の集約。このメソッドが再度呼び出された場合、RepeatOperations が処理を続行できるかどうかの指示。
      関連事項:
    • createInternalState

      protected RepeatInternalState createInternalState(RepeatContext context)
      反復のスコープ内で内部的に必要なデータを格納するために使用される内部状態オブジェクトを作成します。非同期結果のキューイングおよび取得を管理するためにサブクラスによって使用されます。デフォルトでは、バッチの最後に処理するための Throwable インスタンスの累積が提供されます。
      パラメーター:
      context - 現在の RepeatContext
      戻り値:
      RepeatInternalState インスタンス。
      関連事項:
    • getNextResult

      protected RepeatStatus getNextResult(RepeatContext context, RepeatCallback callback, RepeatInternalState state) throws ThrowableSE
      次の補完した結果を取得します。1 つが最終的に完了するまで、複数のコールバックを実行する可能性があります。このメソッドの実装は内部状態の詳細に依存するため、通常、サブクラスはこのメソッドと createInternalState(RepeatContext) の両方をオーバーライドする必要があります。
      パラメーター:
      context - 現在の BatchContext。
      callback - 実行するコールバック。
      state - 実装によって維持されます。
      戻り値:
      完成した結果。
      例外:
      ThrowableSE - 反復中に放出される Throwable
      関連事項:
    • waitForResults

      protected boolean waitForResults(RepeatInternalState state)
      必要に応じて、リモートまたは並行プロセスから結果が返されるまで待ちます。デフォルトでは何もせず、true を返します。
      パラメーター:
      state - 内部状態。
      戻り値:
      canContinue(RepeatStatus) が取得されたすべての結果に対して true の場合、true。
    • canContinue

      protected final boolean canContinue(RepeatStatus value)
      バッチ処理の戻り値を確認してください。
      パラメーター:
      value - 最後のコールバック結果。
      戻り値:
      値が RepeatStatus.CONTINUABLE の場合は true。
    • executeAfterInterceptors

      protected void executeAfterInterceptors(RepeatContext context, RepeatStatus value)
      コールバック結果のインターセプターの後に実行する簡易メソッド。
      パラメーター:
      context - 現在のバッチコンテキスト。
      value - 処理するコールバックの結果。
    • isComplete

      protected boolean isComplete(RepeatContext context, RepeatStatus result)
      CompletionPolicy に委譲します。
      パラメーター:
      context - 現在のバッチコンテキスト。
      result - 最新のバッチアイテム処理の結果。
      戻り値:
      ポリシーと結果値に従って完了した場合は true、それ以外の場合は false。
      関連事項:
    • isComplete

      protected boolean isComplete(RepeatContext context)
      CompletionPolicy に委譲します。
      パラメーター:
      context - 現在のバッチコンテキスト。
      戻り値:
      結果値を含まないポリシーのみに従って完了した場合は true、それ以外の場合は false。
      関連事項:
    • start

      protected RepeatContext start()
      CompletionPolicy に委譲します。
      戻り値:
      バッチステップの内部状態を格納するために実装で使用できる RepeatContext オブジェクト。
      関連事項:
    • update

      protected void update(RepeatContext context)
      CompletionPolicy に委譲します。
      パラメーター:
      context - start によって返される値。
      関連事項: