public class RepeatTemplate extends java.lang.Object implements RepeatOperations
RepeatOperations
を実装するバッチテンプレートの単純な実装と基本クラス。インターセプターとポリシーを含むフレームワークを提供します。サブクラスは、次の結果を取得するメソッドと、すべての結果が並行プロセスまたはスレッドから返されるのを待つメソッドを提供するだけで十分です。CompletionPolicy
を使用できます。これはデフォルトの動作ではありません。RepeatCallback
によって例外がスローされたときにビジネスアクションを実行したいクライアントは、CompletionPolicy
をカスタマイズする代わりに、カスタム RepeatListener
の使用を検討できます。これは通常、実装するのに適したインターフェースであり、RepeatListener.after(RepeatContext, RepeatStatus)
メソッドはコールバックの結果として渡されます。これは、ビジネス処理が例外をスローした場合、Throwable
のインスタンスになります。例外が呼び出し元に伝播されない場合は、デフォルト以外の CompletionPolicy
も提供する必要がありますが、これは既成であり、ビジネスアクションはインターセプターにのみ実装されます。修飾子と型 | フィールドと説明 |
---|---|
protected org.apache.commons.logging.Log | logger |
コンストラクターと説明 |
---|
RepeatTemplate() |
修飾子と型 | メソッドと説明 |
---|---|
protected boolean | canContinue(RepeatStatus value) バッチ処理の戻り値を確認してください。 |
protected RepeatInternalState | createInternalState(RepeatContext context) 反復のスコープ内で内部的に必要なデータを格納するために使用される内部状態オブジェクトを作成します。 |
protected void | executeAfterInterceptors(RepeatContext context, RepeatStatus value) コールバック結果のインターセプターの後に実行する簡易メソッド。 |
protected RepeatStatus | getNextResult(RepeatContext context, RepeatCallback callback, RepeatInternalState state) 次の補完した結果を取得します。1 つが最終的に完了するまで、複数のコールバックを実行する可能性があります。 |
protected boolean | isComplete(RepeatContext context) CompletionPolicy に委譲します。 |
protected boolean | isComplete(RepeatContext context, RepeatStatus result) CompletionPolicy に委譲します。 |
RepeatStatus | iterate(RepeatCallback callback) 完了ポリシーが完了したと判断するまで、バッチコールバックを実行します。 |
void | registerListener(RepeatListener listener) 追加のリスナーを登録します。 |
void | setCompletionPolicy(CompletionPolicy terminationPolicy) バッチがいつ完了するかを決定するポリシーの Setter。 |
void | setExceptionHandler(ExceptionHandler exceptionHandler) 例外ハンドラー戦略の Setter。 |
void | setListeners(RepeatListener[] listeners) このテンプレートのリスナーを設定し、繰り返しの適切なタイミングでコールバックに登録します。 |
protected RepeatContext | start() CompletionPolicy に委譲します。 |
protected void | update(RepeatContext context) CompletionPolicy に委譲します。 |
protected boolean | waitForResults(RepeatInternalState state) 必要に応じて、リモートまたは並行プロセスから結果が返されるまで待ちます。 |
public void setListeners(RepeatListener[] listeners)
listeners
- 使用するリスナー public void registerListener(RepeatListener listener)
listener
- リストに追加される単一のリスナー public void setExceptionHandler(ExceptionHandler exceptionHandler)
CompletionPolicy
がバッチが完了したと判断した後、バッチの最後に呼び出されます。デフォルトでは、すべての例外が再スローされます。exceptionHandler
- 使用する ExceptionHandler
。ExceptionHandler
, DefaultExceptionHandler
, setCompletionPolicy(CompletionPolicy)
public void setCompletionPolicy(CompletionPolicy terminationPolicy)
RepeatStatus
を返したときに正常に完了し、コールバックが例外をスローしたときに異常終了します(ただし、例外を再スローする決定は ExceptionHandler
に延期されます)。terminationPolicy
- TerminationPolicy。java.lang.IllegalArgumentException
- 引数が null の場合 setExceptionHandler(ExceptionHandler)
public RepeatStatus iterate(RepeatCallback callback)
RepeatOperations
の iterate
callback
- バッチコールバック。RepeatOperations
が処理を続行できるかどうかの指示。RepeatOperations.iterate(org.springframework.batch.repeat.RepeatCallback)
protected RepeatInternalState createInternalState(RepeatContext context)
context
- 現在の RepeatContext
RepeatInternalState
インスタンス。waitForResults(RepeatInternalState)
protected RepeatStatus getNextResult(RepeatContext context, RepeatCallback callback, RepeatInternalState state) throws java.lang.Throwable
createInternalState(RepeatContext)
の両方をオーバーライドする必要があります。context
- 現在の BatchContext。callback
- 実行するコールバック。state
- 実装によって維持されます。java.lang.Throwable
- 反復中に放出される ThrowableisComplete(RepeatContext)
, createInternalState(RepeatContext)
protected boolean waitForResults(RepeatInternalState state)
state
- 内部状態。canContinue(RepeatStatus)
が取得されたすべての結果に対して true の場合、true。protected final boolean canContinue(RepeatStatus value)
value
- 最後のコールバック結果。RepeatStatus.CONTINUABLE
の場合は true。protected void executeAfterInterceptors(RepeatContext context, RepeatStatus value)
context
- 現在のバッチコンテキスト。value
- 処理するコールバックの結果。protected boolean isComplete(RepeatContext context, RepeatStatus result)
CompletionPolicy
に委譲します。context
- 現在のバッチコンテキスト。result
- 最新のバッチアイテム処理の結果。CompletionPolicy.isComplete(RepeatContext, RepeatStatus)
protected boolean isComplete(RepeatContext context)
CompletionPolicy
に委譲します。context
- 現在のバッチコンテキスト。CompletionPolicy.isComplete(RepeatContext)
protected RepeatContext start()
CompletionPolicy
に委譲します。RepeatContext
オブジェクト。CompletionPolicy.start(RepeatContext)
protected void update(RepeatContext context)
CompletionPolicy
に委譲します。context
- start によって返される値。CompletionPolicy.update(RepeatContext)