public class TaskExecutorRepeatTemplate extends RepeatTemplate
RepeatOperations
サポートを提供します。RepeatCallback
をトランザクション化することで各アイテムのトランザクション動作を構成するのに、または execute メソッドをトランザクション化することでバッチ全体のトランザクション動作を構成するのに十分です(ただし、タスクエグゼキューターが同期の場合のみ)。RepeatCallback
はスレッドセーフである必要があります。多くの場合、何らかの形式のデータソースに基づいており、それ自体がスレッドセーフでトランザクション対応である必要があります(複数のスレッドがいつでもアクセスできますが、各スレッドには独自のトランザクションがあります)。修飾子と型 | フィールドと説明 |
---|---|
static int | DEFAULT_THROTTLE_LIMIT テンプレートで許可される同時未完了結果の最大数のデフォルト制限。 |
logger
コンストラクターと説明 |
---|
TaskExecutorRepeatTemplate() |
修飾子と型 | メソッドと説明 |
---|---|
protected RepeatInternalState | createInternalState(RepeatContext context) 反復のスコープ内で内部的に必要なデータを格納するために使用される内部状態オブジェクトを作成します。 |
protected RepeatStatus | getNextResult(RepeatContext context, RepeatCallback callback, RepeatInternalState state) setTaskExecutor(TaskExecutor) を使用して結果を生成します。 |
void | setTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor) 個々のアイテムコールバックの実行に使用されるタスクエグゼキューターの Setter。 |
void | setThrottleLimit(int throttleLimit) スロットル制限のパブリック setter。 |
protected boolean | waitForResults(RepeatInternalState state) すべての結果がキューに表示されるのを待ち、それぞれの結果インターセプターを実行します。 |
canContinue, executeAfterInterceptors, isComplete, isComplete, iterate, registerListener, setCompletionPolicy, setExceptionHandler, setListeners, start, update
public static final int DEFAULT_THROTTLE_LIMIT
getNextResult(RepeatContext, RepeatCallback, RepeatInternalState)
public void setThrottleLimit(int throttleLimit)
TaskExecutor
に送信します。デフォルト値は DEFAULT_THROTTLE_LIMIT
です。N.B. スレッドプール TaskExecutor
で使用する場合、スレッドプールはスロットル制限に実際に到達することを妨げる可能性があります(可能な場合、コアプールサイズをスロットル制限より大きくします)。throttleLimit
- 設定するスロットル制限。public void setTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor)
taskExecutor
- TaskExecutorjava.lang.IllegalArgumentException
- 引数が null の場合 protected RepeatStatus getNextResult(RepeatContext context, RepeatCallback callback, RepeatInternalState state) throws java.lang.Throwable
setTaskExecutor(TaskExecutor)
を使用して結果を生成します。この場合の内部状態は、型 ResultHolder
の未完了の結果ホルダーのキューです。このメソッドが終了するとき、戻り値を持つホルダーはキューにいるべきではありません。キューは呼び出しメソッド内でスコープされるため、アクセスを同期する必要はありません。RepeatTemplate
の getNextResult
context
- 現在の BatchContext。callback
- 実行するコールバック。state
- 実装によって維持されます。java.lang.Throwable
- 反復中に放出される ThrowableRepeatTemplate.isComplete(RepeatContext)
, RepeatTemplate.createInternalState(RepeatContext)
protected boolean waitForResults(RepeatInternalState state)
RepeatTemplate
の waitForResults
state
- 内部状態。RepeatTemplate.canContinue(RepeatStatus)
が取得されたすべての結果に対して true の場合、true。RepeatTemplate.waitForResults(org.springframework.batch.repeat.support.RepeatInternalState)
protected RepeatInternalState createInternalState(RepeatContext context)
RepeatTemplate
RepeatTemplate
の createInternalState
context
- 現在の RepeatContext
RepeatInternalState
インスタンス。RepeatTemplate.waitForResults(RepeatInternalState)