クラス TaskExecutorRepeatTemplate

java.lang.ObjectSE
org.springframework.batch.repeat.support.RepeatTemplate
org.springframework.batch.repeat.support.TaskExecutorRepeatTemplate
実装されたすべてのインターフェース:
RepeatOperations

public class TaskExecutorRepeatTemplate extends RepeatTemplate
実行時の動作を変更または監視するために使用できるインターセプターを含む RepeatOperations サポートを提供します。
この実装は、RepeatCallback をトランザクション化することで各項目のトランザクション動作を構成するのに十分であり、または実行メソッドをトランザクション化することでバッチ全体のトランザクション動作を構成するのに十分です (ただし、タスク実行者が同期している場合に限ります)。
このクラスは、そのコラボレーターがスレッドセーフである場合 (インターセプター、terminationPolicy、コールバック)、スレッドセーフです。通常はこれに該当しますが、タスク実行者が非同期である場合、他のコラボレーターも非同期である必要があることをクライアントは認識する必要があります。特に、execute メソッドにラップされている RepeatCallback はスレッドセーフである必要があります。多くの場合、これは何らかの形式のデータソースに基づいており、それ自体がスレッドセーフかつトランザクションである必要があります (複数のスレッドがいつでもアクセスでき、各スレッドには独自のトランザクションがあります)。
作成者:
Dave Syer, Mahmoud Ben Hassine
  • フィールドの詳細

  • コンストラクターの詳細

    • TaskExecutorRepeatTemplate

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

    • setThrottleLimit

      @DeprecatedSE(since="5.0", forRemoval=true) public void setThrottleLimit(int throttleLimit)
      非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
      5.0 以降、6.0 で削除予定。代わりに、タスクキューの容量が制限されたプールされた TaskExecutor 実装を使用してください。
      スロットル制限のパブリック setter。スロットル制限は、一度に実行できる同時タスクの最大数です。新しいタスクが到着し、スロットル制限に違反した場合、実行中のタスクの 1 つが終了してから、新しいタスクを TaskExecutor に送信します。デフォルト値は DEFAULT_THROTTLE_LIMIT です。N.B. スレッドプール TaskExecutor で使用する場合、スレッドプールはスロットル制限に実際に到達することを妨げる可能性があります(可能な場合、コアプールサイズをスロットル制限より大きくします)。
      パラメーター:
      throttleLimit - throttleLimit を設定します。
    • setTaskExecutor

      public void setTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor)
      個々のアイテムコールバックの実行に使用されるタスクエグゼキューターの Setter。
      パラメーター:
      taskExecutor - TaskExecutor
      例外:
      IllegalArgumentExceptionSE - 引数が null の場合
    • getNextResult

      protected RepeatStatus getNextResult(RepeatContext context, RepeatCallback callback, RepeatInternalState state) throws ThrowableSE
      setTaskExecutor(TaskExecutor) を使用して結果を生成します。この場合の内部状態は、型 ResultHolder の未完了の結果ホルダーのキューです。このメソッドが終了するとき、戻り値を持つホルダーはキューにいるべきではありません。キューは呼び出しメソッド内でスコープされるため、アクセスを同期する必要はありません。
      オーバーライド:
      クラス RepeatTemplategetNextResult 
      パラメーター:
      context - 現在の BatchContext。
      callback - 実行するコールバック。
      state - 実装によって維持されます。
      戻り値:
      完成した結果。
      例外:
      ThrowableSE - 反復中に放出される Throwable
      関連事項:
    • waitForResults

      protected boolean waitForResults(RepeatInternalState state)
      すべての結果がキューに表示されるのを待ち、それぞれの結果インターセプターを実行します。
      オーバーライド:
      クラス RepeatTemplatewaitForResults 
      パラメーター:
      state - 内部状態。
      戻り値:
      RepeatTemplate.canContinue(RepeatStatus) が取得されたすべての結果に対して true の場合、true。
      関連事項:
    • createInternalState

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