クラス ThreadPoolTaskScheduler

実装されたすべてのインターフェース:
SerializableSEExecutorSEThreadFactorySEEventListenerSEAwareBeanNameAwareDisposableBeanInitializingBeanApplicationContextAwareApplicationListener<ContextClosedEvent>LifecyclePhasedSmartLifecycleAsyncListenableTaskExecutorAsyncTaskExecutorTaskExecutorSchedulingTaskExecutorTaskScheduler

public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport implements AsyncListenableTaskExecutor, SchedulingTaskExecutor, TaskScheduler
Spring の TaskScheduler インターフェースの標準実装。ネイティブ ScheduledThreadPoolExecutorSE をラップし、それに適用可能なすべての構成オプションを提供します。スケジューラスレッドのデフォルトの数は 1 です。setPoolSize(int) を通じて、より大きな数を構成できます。

これは、Spring の従来のスケジューラバリアントであり、可能な限り ScheduledExecutorServiceSE のセマンティクスに近いものです。タスクの実行は、個別の実行スレッドではなく、スケジューラスレッドで行われます。結果として、ScheduledFutureSE ハンドル (例: schedule(Runnable, Instant) から) は、提供されたタスク (または一連の繰り返しタスク) の実際の補完を表します。

導入:
3.0
作成者:
Juergen Hoeller, Mark Fisher
関連事項:
  • コンストラクターの詳細

    • ThreadPoolTaskScheduler

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

    • setPoolSize

      public void setPoolSize(int poolSize)
      ScheduledExecutorService のプールサイズを設定します。デフォルトは 1 です。

      この設定は、JMX などを介して実行時に変更できます。

    • setRemoveOnCancelPolicy

      public void setRemoveOnCancelPolicy(boolean flag)
      ScheduledThreadPoolExecutorSE でキャンセル時に削除モードを設定します。

      デフォルトは false です。true に設定されている場合、ターゲットエグゼキュータは削除オンキャンセルモードに切り替えられます(可能な場合)。

      この設定は、JMX などを介して実行時に変更できます。

      関連事項:
    • setContinueExistingPeriodicTasksAfterShutdownPolicy

      public void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean flag)
      このエグゼキュータがシャットダウンされた場合でも、既存の定期的なタスクを続行するかどうかを設定します。

      デフォルトは false です。true に設定されている場合、ターゲットエグゼキュータは継続的な定期タスクに切り替えられます(可能な場合)。

      この設定は、JMX などを介して実行時に変更できます。

      導入:
      5.3.9
      関連事項:
    • setExecuteExistingDelayedTasksAfterShutdownPolicy

      public void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean flag)
      このエグゼキュータがシャットダウンされている場合でも、既存の遅延タスクを実行するかどうかを設定します。

      デフォルトは true です。false に設定されている場合、ターゲットエグゼキュータは残りのタスクをドロップするように切り替えられます(可能な場合)。

      この設定は、JMX などを介して実行時に変更できます。

      導入:
      5.3.9
      関連事項:
    • setErrorHandler

      public void setErrorHandler(ErrorHandler errorHandler)
      カスタム ErrorHandler 戦略を設定します。
    • setClock

      public void setClock(ClockSE clock)
      スケジューリングの目的で使用する監視を設定します。

      デフォルトのクロックは、デフォルトのタイムゾーンのシステムクロックです。

      導入:
      5.3
      関連事項:
    • getClock

      public ClockSE getClock()
      インターフェースからコピーされた説明: TaskScheduler
      スケジューリングの目的で使用する監視を返します。
      次で指定:
      インターフェース TaskSchedulergetClock 
      関連事項:
    • initializeExecutor

      protected ExecutorServiceSE initializeExecutor(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler)
      クラスからコピーされた説明: ExecutorConfigurationSupport
      ターゲット ExecutorServiceSE インスタンスを作成します。afterPropertiesSet によって呼び出されます。
      次で指定:
      クラス ExecutorConfigurationSupportinitializeExecutor 
      パラメーター:
      threadFactory - 使用する ThreadFactory
      rejectedExecutionHandler - 使用する RejectedExecutionHandler
      戻り値:
      新しい ExecutorService インスタンス
      関連事項:
    • createExecutor

      protected ScheduledExecutorServiceSE createExecutor(int poolSize, ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler)
      新しい ScheduledExecutorServiceSE インスタンスを作成します。

      デフォルト実装は ScheduledThreadPoolExecutorSE を作成します。サブクラスでオーバーライドして、カスタム ScheduledExecutorServiceSE インスタンスを提供できます。

      パラメーター:
      poolSize - 指定されたプールサイズ
      threadFactory - 使用する ThreadFactory
      rejectedExecutionHandler - 使用する RejectedExecutionHandler
      戻り値:
      新しい ScheduledExecutorService インスタンス
      関連事項:
    • getScheduledExecutor

      public ScheduledExecutorServiceSE getScheduledExecutor() throws IllegalStateExceptionSE
      ネイティブアクセスの基になる ScheduledExecutorService を返します。
      戻り値:
      基になる ScheduledExecutorService (非 null)
      例外:
      IllegalStateExceptionSE - ThreadPoolTaskScheduler がまだ初期化されていない場合
    • getScheduledThreadPoolExecutor

      public ScheduledThreadPoolExecutorSE getScheduledThreadPoolExecutor() throws IllegalStateExceptionSE
      可能であれば、基礎となる ScheduledThreadPoolExecutor を返します。
      戻り値:
      基になる ScheduledExecutorService (非 null)
      例外:
      IllegalStateExceptionSE - ThreadPoolTaskScheduler がまだ初期化されていない場合、または基礎となる ScheduledExecutorService が ScheduledThreadPoolExecutor でない場合
      関連事項:
    • getPoolSize

      public int getPoolSize()
      現在のプールサイズを返します。

      基礎となる ScheduledThreadPoolExecutorSE が必要です。

      関連事項:
    • getActiveCount

      public int getActiveCount()
      現在アクティブなスレッドの数を返します。

      基礎となる ScheduledThreadPoolExecutorSE が必要です。

      関連事項:
    • isRemoveOnCancelPolicy

      @DeprecatedSE public boolean isRemoveOnCancelPolicy()
      使用すべきではありません。
      5.3.9 の時点で、getScheduledThreadPoolExecutor() への直接アクセスを優先
      キャンセル時に削除モードの現在の設定を返します。

      基礎となる ScheduledThreadPoolExecutorSE が必要です。

    • execute

      public void execute(RunnableSE task)
      インターフェースからコピーされた説明: TaskExecutor
      指定された task を実行します。

      実装が非同期実行戦略を使用している場合、呼び出しはすぐに戻るか、同期実行の場合はブロックする可能性があります。

      次で指定:
      インターフェース ExecutorSEexecuteSE 
      次で指定:
      インターフェース TaskExecutorexecute 
      パラメーター:
      task - 実行する Runnable (非 null)
    • submit

      public FutureSE<?> submit(RunnableSE task)
      インターフェースからコピーされた説明: AsyncTaskExecutor
      実行可能な Runnable タスクを送信し、そのタスクを表す Future を受け取ります。Future は完了時に null の結果を返します。

      6.1 では、このメソッドには TaskExecutor.execute(Runnable) に委譲するデフォルトの実装が付属しています。

      次で指定:
      インターフェース AsyncTaskExecutorsubmit 
      パラメーター:
      task - 実行する Runnable (非 null)
      戻り値:
      タスクの保留中の補完を表す Future
    • submit

      public <T> FutureSE<T> submit(CallableSE<T> task)
      インターフェースからコピーされた説明: AsyncTaskExecutor
      Callable タスクを送信して実行し、そのタスクを表す Future を受け取ります。Future は、完了時に Callable の結果を返します。

      6.1 では、このメソッドには TaskExecutor.execute(Runnable) に委譲するデフォルトの実装が付属しています。

      次で指定:
      インターフェース AsyncTaskExecutorsubmit 
      パラメーター:
      task - 実行する Callable (非 null)
      戻り値:
      タスクの保留中の補完を表す Future
    • submitListenable

      public ListenableFuture<?> submitListenable(RunnableSE task)
      インターフェースからコピーされた説明: AsyncListenableTaskExecutor
      Runnable タスクを実行のために送信し、そのタスクを表す ListenableFuture を受け取ります。Future は完了時に null の結果を返します。
      次で指定:
      インターフェース AsyncListenableTaskExecutorsubmitListenable 
      パラメーター:
      task - 実行する Runnable (非 null)
      戻り値:
      保留中のタスクの補完を表す ListenableFuture 
    • submitListenable

      public <T> ListenableFuture<T> submitListenable(CallableSE<T> task)
      インターフェースからコピーされた説明: AsyncListenableTaskExecutor
      Callable タスクを実行のために送信し、そのタスクを表す ListenableFuture を受け取ります。Future は、完了時に Callable の結果を返します。
      次で指定:
      インターフェース AsyncListenableTaskExecutorsubmitListenable 
      パラメーター:
      task - 実行する Callable (非 null)
      戻り値:
      保留中のタスクの補完を表す ListenableFuture 
    • cancelRemainingTask

      protected void cancelRemainingTask(RunnableSE task)
      クラスからコピーされた説明: ExecutorConfigurationSupport
      ExecutorService.shutdownNow() から返された、実行を開始していない指定された残りのタスクをキャンセルします。
      オーバーライド:
      クラス ExecutorConfigurationSupportcancelRemainingTask 
      パラメーター:
      task - キャンセルするタスク (通常、RunnableFutureSE )
      関連事項:
    • schedule

      @Nullable public ScheduledFutureSE<?> schedule(RunnableSE task, Trigger trigger)
      インターフェースからコピーされた説明: TaskScheduler
      指定された RunnableSE をスケジュールし、トリガーが次の実行時間を示すたびに呼び出します。

      スケジューラがシャットダウンするか、返された ScheduledFutureSE がキャンセルされると、実行は終了します。

      次で指定:
      インターフェース TaskSchedulerschedule 
      パラメーター:
      task - トリガーが起動するたびに実行する Runnable
      trigger - Trigger インターフェースの実装。cron 式をラップする CronTrigger オブジェクト
      戻り値:
      タスクの実行保留を表す ScheduledFutureSE、または指定されたトリガーオブジェクトが決して起動しない場合は null (つまり、Trigger.nextExecution(org.springframework.scheduling.TriggerContext) から null を返します)
      関連事項:
    • schedule

      public ScheduledFutureSE<?> schedule(RunnableSE task, InstantSE startTime)
      インターフェースからコピーされた説明: TaskScheduler
      指定された RunnableSE をスケジュールし、指定された実行時間に呼び出します。

      スケジューラがシャットダウンするか、返された ScheduledFutureSE がキャンセルされると、実行は終了します。

      次で指定:
      インターフェース TaskSchedulerschedule 
      パラメーター:
      task - トリガーが起動するたびに実行する Runnable
      startTime - タスクの望ましい実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)
      戻り値:
      タスクの保留中の実行を表す ScheduledFutureSE
    • scheduleAtFixedRate

      public ScheduledFutureSE<?> scheduleAtFixedRate(RunnableSE task, InstantSE startTime, DurationSE period)
      インターフェースからコピーされた説明: TaskScheduler
      指定された RunnableSE をスケジュールし、指定された実行時間に呼び出し、その後、指定された期間で呼び出します。

      スケジューラがシャットダウンするか、返された ScheduledFutureSE がキャンセルされると、実行は終了します。

      次で指定:
      インターフェース TaskSchedulerscheduleAtFixedRate 
      パラメーター:
      task - トリガーが起動するたびに実行する Runnable
      startTime - タスクに必要な最初の実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)
      period - タスクの連続した実行の間隔
      戻り値:
      タスクの保留中の実行を表す ScheduledFutureSE
    • scheduleAtFixedRate

      public ScheduledFutureSE<?> scheduleAtFixedRate(RunnableSE task, DurationSE period)
      インターフェースからコピーされた説明: TaskScheduler
      指定された RunnableSE をスケジュールします。できるだけ早く開始し、指定された期間で呼び出します。

      スケジューラがシャットダウンするか、返された ScheduledFutureSE がキャンセルされると、実行は終了します。

      次で指定:
      インターフェース TaskSchedulerscheduleAtFixedRate 
      パラメーター:
      task - トリガーが起動するたびに実行する Runnable
      period - タスクの連続した実行の間隔
      戻り値:
      タスクの保留中の実行を表す ScheduledFutureSE
    • scheduleWithFixedDelay

      public ScheduledFutureSE<?> scheduleWithFixedDelay(RunnableSE task, InstantSE startTime, DurationSE delay)
      インターフェースからコピーされた説明: TaskScheduler
      指定された RunnableSE をスケジュールし、指定された実行時間に呼び出し、その後、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。

      スケジューラがシャットダウンするか、返された ScheduledFutureSE がキャンセルされると、実行は終了します。

      次で指定:
      インターフェース TaskSchedulerscheduleWithFixedDelay 
      パラメーター:
      task - トリガーが起動するたびに実行する Runnable
      startTime - タスクに必要な最初の実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)
      delay - ある実行の補完から次の実行の開始までの遅延
      戻り値:
      タスクの保留中の実行を表す ScheduledFutureSE
    • scheduleWithFixedDelay

      public ScheduledFutureSE<?> scheduleWithFixedDelay(RunnableSE task, DurationSE delay)
      インターフェースからコピーされた説明: TaskScheduler
      指定された RunnableSE をスケジュールします。できるだけ早く開始し、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。

      スケジューラがシャットダウンするか、返された ScheduledFutureSE がキャンセルされると、実行は終了します。

      次で指定:
      インターフェース TaskSchedulerscheduleWithFixedDelay 
      パラメーター:
      task - トリガーが起動するたびに実行する Runnable
      delay - ある実行の補完から次の実行の開始までの遅延
      戻り値:
      タスクの保留中の実行を表す ScheduledFutureSE