クラス ThreadPoolTaskScheduler
- 実装されたすべてのインターフェース:
SerializableSE
、ExecutorSE
、ThreadFactorySE
、EventListenerSE
、Aware
、BeanNameAware
、DisposableBean
、InitializingBean
、ApplicationContextAware
、ApplicationListener<ContextClosedEvent>
、Lifecycle
、Phased
、SmartLifecycle
、AsyncListenableTaskExecutor
、AsyncTaskExecutor
、TaskExecutor
、SchedulingTaskExecutor
、TaskScheduler
TaskScheduler
インターフェースの標準実装。ネイティブ ScheduledThreadPoolExecutor
SE をラップし、それに適用可能なすべての構成オプションを提供します。スケジューラスレッドのデフォルトの数は 1 です。setPoolSize(int)
を通じて、より大きな数を構成できます。 これは、Spring の従来のスケジューラバリアントであり、可能な限り ScheduledExecutorService
SE のセマンティクスに近いものです。タスクの実行は、個別の実行スレッドではなく、スケジューラスレッドで行われます。結果として、ScheduledFuture
SE ハンドル (たとえば、schedule(Runnable, Instant)
から) は、提供されたタスク (または一連の繰り返しタスク) の実際の完了を表します。
- 導入:
- 3.0
- 作成者:
- Juergen Hoeller, Mark Fisher
- 関連事項:
setPoolSize(int)
setRemoveOnCancelPolicy(boolean)
setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean)
setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean)
ExecutorConfigurationSupport.setThreadFactory(java.util.concurrent.ThreadFactory)
setErrorHandler(org.springframework.util.ErrorHandler)
ThreadPoolTaskExecutor
SimpleAsyncTaskScheduler
- 直列化された形式
フィールドサマリー
クラス org.springframework.scheduling.concurrent.ExecutorConfigurationSupport から継承されたフィールド
DEFAULT_PHASE, logger
インターフェース org.springframework.core.task.AsyncTaskExecutor から継承されたフィールド
TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE
コンストラクターのサマリー
方法の概要
修飾子と型メソッド説明protected void
ExecutorService.shutdownNow()
から返された、実行を開始していない指定された残りのタスクをキャンセルします。protected ScheduledExecutorServiceSE
createExecutor
(int poolSize, ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) 新しいScheduledExecutorService
SE インスタンスを作成します。void
execute
(RunnableSE task) 指定されたtask
を実行します。int
現在アクティブなスレッドの数を返します。getClock()
スケジューリングの目的で使用する監視を返します。int
現在のプールサイズを返します。ネイティブアクセスの基になる ScheduledExecutorService を返します。可能であれば、基礎となる ScheduledThreadPoolExecutor を返します。protected ExecutorServiceSE
initializeExecutor
(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) ターゲットExecutorService
SE インスタンスを作成します。boolean
使用すべきではありません。schedule
(RunnableSE task, InstantSE startTime) 指定されたRunnable
SE をスケジュールし、指定された実行時間に呼び出します。schedule
(RunnableSE task, Trigger trigger) 指定されたRunnable
SE をスケジュールし、トリガーが次の実行時間を示すたびに呼び出します。scheduleAtFixedRate
(RunnableSE task, DurationSE period) 指定されたRunnable
SE をスケジュールします。できるだけ早く開始し、指定された期間で呼び出します。scheduleAtFixedRate
(RunnableSE task, InstantSE startTime, DurationSE period) 指定されたRunnable
SE をスケジュールし、指定された実行時間に呼び出し、その後、指定された期間で呼び出します。scheduleWithFixedDelay
(RunnableSE task, DurationSE delay) 指定されたRunnable
SE をスケジュールします。できるだけ早く開始し、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。scheduleWithFixedDelay
(RunnableSE task, InstantSE startTime, DurationSE delay) 指定されたRunnable
SE をスケジュールし、指定された実行時間に呼び出し、その後、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。void
スケジューリングの目的で使用する監視を設定します。void
setContinueExistingPeriodicTasksAfterShutdownPolicy
(boolean flag) このエグゼキュータがシャットダウンされた場合でも、既存の定期的なタスクを続行するかどうかを設定します。void
setErrorHandler
(ErrorHandler errorHandler) カスタムErrorHandler
戦略を設定します。void
setExecuteExistingDelayedTasksAfterShutdownPolicy
(boolean flag) このエグゼキュータがシャットダウンされている場合でも、既存の遅延タスクを実行するかどうかを設定します。void
setPoolSize
(int poolSize) ScheduledExecutorService のプールサイズを設定します。void
setRemoveOnCancelPolicy
(boolean flag) ScheduledThreadPoolExecutor
SE でキャンセル時に削除モードを設定します。void
setTaskDecorator
(TaskDecorator taskDecorator) 実行しようとしているRunnable
SE に適用するカスタムTaskDecorator
を指定します。FutureSE<?>
submit
(RunnableSE task) 実行可能な Runnable タスクを送信し、そのタスクを表す Future を受け取ります。<T> FutureSE<T>
submit
(CallableSE<T> task) Callable タスクを送信して実行し、そのタスクを表す Future を受け取ります。submitListenable
(RunnableSE task) Runnable
タスクを実行のために送信し、そのタスクを表すListenableFuture
を受け取ります。<T> ListenableFuture<T>
submitListenable
(CallableSE<T> task) Callable
タスクを実行のために送信し、そのタスクを表すListenableFuture
を受け取ります。クラス org.springframework.scheduling.concurrent.ExecutorConfigurationSupport から継承されたメソッド
afterExecute, afterPropertiesSet, beforeExecute, destroy, getPhase, initialize, initiateEarlyShutdown, initiateShutdown, isRunning, onApplicationEvent, setAcceptTasksAfterContextClose, setApplicationContext, setAwaitTerminationMillis, setAwaitTerminationSeconds, setBeanName, setPhase, setRejectedExecutionHandler, setThreadFactory, setThreadNamePrefix, setVirtualThreads, setWaitForTasksToCompleteOnShutdown, shutdown, start, stop, stop
クラス org.springframework.scheduling.concurrent.CustomizableThreadFactory から継承されたメソッド
newThread
クラス org.springframework.util.CustomizableThreadCreator から継承されたメソッド
createThread, getDefaultThreadNamePrefix, getThreadGroup, getThreadNamePrefix, getThreadPriority, isDaemon, nextThreadName, setDaemon, setThreadGroup, setThreadGroupName, setThreadPriority
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.context.ApplicationListener から継承されたメソッド
supportsAsyncExecution
インターフェース org.springframework.core.task.AsyncTaskExecutor から継承されたメソッド
execute, submitCompletable, submitCompletable
インターフェース org.springframework.scheduling.SchedulingTaskExecutor から継承されたメソッド
prefersShortLivedTasks
インターフェース org.springframework.context.SmartLifecycle から継承されたメソッド
isAutoStartup
インターフェース org.springframework.scheduling.TaskScheduler から継承されたメソッド
schedule, scheduleAtFixedRate, scheduleAtFixedRate, scheduleWithFixedDelay, scheduleWithFixedDelay
コンストラクターの詳細
ThreadPoolTaskScheduler
public ThreadPoolTaskScheduler()
メソッドの詳細
setPoolSize
public void setPoolSize(int poolSize) ScheduledExecutorService のプールサイズを設定します。デフォルトは 1 です。この設定は、JMX などを介して実行時に変更できます。
setRemoveOnCancelPolicy
public void setRemoveOnCancelPolicy(boolean flag) ScheduledThreadPoolExecutor
SE でキャンセル時に削除モードを設定します。デフォルトは
false
です。true
に設定されている場合、ターゲットエグゼキュータは削除オンキャンセルモードに切り替えられます(可能な場合)。この設定は、JMX などを介して実行時に変更できます。
setContinueExistingPeriodicTasksAfterShutdownPolicy
public void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean flag) このエグゼキュータがシャットダウンされた場合でも、既存の定期的なタスクを続行するかどうかを設定します。デフォルトは
false
です。true
に設定されている場合、ターゲットエグゼキュータは継続的な定期タスクに切り替えられます(可能な場合)。この設定は、JMX などを介して実行時に変更できます。
setExecuteExistingDelayedTasksAfterShutdownPolicy
public void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean flag) このエグゼキュータがシャットダウンされている場合でも、既存の遅延タスクを実行するかどうかを設定します。デフォルトは
true
です。false
に設定されている場合、ターゲットエグゼキュータは残りのタスクをドロップするように切り替えられます(可能な場合)。この設定は、JMX などを介して実行時に変更できます。
setTaskDecorator
実行しようとしているRunnable
SE に適用するカスタムTaskDecorator
を指定します。このようなデコレータは、ユーザー指定の
Runnable
/Callable
には適用されず、スケジュールされた実行コールバック (ユーザー指定のタスクのラッパー) に適用されることに注意してください。主な使用例は、タスクの呼び出しの周囲に実行コンテキストを設定するか、タスク実行の監視 / 統計を提供することです。
- 導入:
- 6.2
setErrorHandler
カスタムErrorHandler
戦略を設定します。setClock
スケジューリングの目的で使用する監視を設定します。デフォルトのクロックは、デフォルトのタイムゾーンのシステムクロックです。
- 導入:
- 5.3
- 関連事項:
getClock
インターフェースからコピーされた説明:TaskScheduler
スケジューリングの目的で使用する監視を返します。- 次で指定:
- インターフェース
TaskScheduler
のgetClock
- 関連事項:
initializeExecutor
protected ExecutorServiceSE initializeExecutor(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) クラスからコピーされた説明:ExecutorConfigurationSupport
ターゲットExecutorService
SE インスタンスを作成します。afterPropertiesSet
によって呼び出されます。- 次で指定:
- クラス
ExecutorConfigurationSupport
のinitializeExecutor
- パラメーター:
threadFactory
- 使用する ThreadFactoryrejectedExecutionHandler
- 使用する RejectedExecutionHandler- 戻り値:
- 新しい ExecutorService インスタンス
- 関連事項:
createExecutor
protected ScheduledExecutorServiceSE createExecutor(int poolSize, ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) 新しいScheduledExecutorService
SE インスタンスを作成します。デフォルト実装は
ScheduledThreadPoolExecutor
SE を作成します。サブクラスでオーバーライドして、カスタムScheduledExecutorService
SE インスタンスを提供できます。- パラメーター:
poolSize
- 指定されたプールサイズthreadFactory
- 使用する ThreadFactoryrejectedExecutionHandler
- 使用する RejectedExecutionHandler- 戻り値:
- 新しい ScheduledExecutorService インスタンス
- 関連事項:
getScheduledExecutor
ネイティブアクセスの基になる ScheduledExecutorService を返します。- 戻り値:
- 基になる ScheduledExecutorService (非
null
) - 例外:
IllegalStateExceptionSE
- ThreadPoolTaskScheduler がまだ初期化されていない場合
getScheduledThreadPoolExecutor
public ScheduledThreadPoolExecutorSE getScheduledThreadPoolExecutor() throws IllegalStateExceptionSE可能であれば、基礎となる ScheduledThreadPoolExecutor を返します。- 戻り値:
- 基になる ScheduledExecutorService (非
null
) - 例外:
IllegalStateExceptionSE
- ThreadPoolTaskScheduler がまだ初期化されていない場合、または基礎となる ScheduledExecutorService が ScheduledThreadPoolExecutor でない場合- 関連事項:
getPoolSize
public int getPoolSize()現在のプールサイズを返します。基礎となる
ScheduledThreadPoolExecutor
SE が必要です。getActiveCount
public int getActiveCount()現在アクティブなスレッドの数を返します。基礎となる
ScheduledThreadPoolExecutor
SE が必要です。isRemoveOnCancelPolicy
使用すべきではありません。5.3.9 の時点で、getScheduledThreadPoolExecutor()
への直接アクセスを優先キャンセル時に削除モードの現在の設定を返します。基礎となる
ScheduledThreadPoolExecutor
SE が必要です。execute
インターフェースからコピーされた説明:TaskExecutor
指定されたtask
を実行します。実装が非同期実行戦略を使用している場合、呼び出しはすぐに戻るか、同期実行の場合はブロックする可能性があります。
- 次で指定:
- インターフェース
ExecutorSE
のexecuteSE
- 次で指定:
- インターフェース
TaskExecutor
のexecute
- パラメーター:
task
- 実行するRunnable
(非null
)
submit
インターフェースからコピーされた説明:AsyncTaskExecutor
実行可能な Runnable タスクを送信し、そのタスクを表す Future を受け取ります。Future は完了時にnull
の結果を返します。6.1 では、このメソッドには
TaskExecutor.execute(Runnable)
に委譲するデフォルトの実装が付属しています。- 次で指定:
- インターフェース
AsyncTaskExecutor
のsubmit
- パラメーター:
task
- 実行するRunnable
(非null
)- 戻り値:
- タスクの保留中の完了を表す Future
submit
インターフェースからコピーされた説明:AsyncTaskExecutor
Callable タスクを送信して実行し、そのタスクを表す Future を受け取ります。Future は、完了時に Callable の結果を返します。6.1 では、このメソッドには
TaskExecutor.execute(Runnable)
に委譲するデフォルトの実装が付属しています。- 次で指定:
- インターフェース
AsyncTaskExecutor
のsubmit
- パラメーター:
task
- 実行するCallable
(非null
)- 戻り値:
- タスクの保留中の完了を表す Future
submitListenable
インターフェースからコピーされた説明:AsyncListenableTaskExecutor
Runnable
タスクを実行のために送信し、そのタスクを表すListenableFuture
を受け取ります。Future は完了時にnull
の結果を返します。- 次で指定:
- インターフェース
AsyncListenableTaskExecutor
のsubmitListenable
- パラメーター:
task
- 実行するRunnable
(非null
)- 戻り値:
- 保留中のタスクの完了を表す
ListenableFuture
submitListenable
インターフェースからコピーされた説明:AsyncListenableTaskExecutor
Callable
タスクを実行のために送信し、そのタスクを表すListenableFuture
を受け取ります。Future は、完了時に Callable の結果を返します。- 次で指定:
- インターフェース
AsyncListenableTaskExecutor
のsubmitListenable
- パラメーター:
task
- 実行するCallable
(非null
)- 戻り値:
- 保留中のタスクの完了を表す
ListenableFuture
cancelRemainingTask
クラスからコピーされた説明:ExecutorConfigurationSupport
ExecutorService.shutdownNow()
から返された、実行を開始していない指定された残りのタスクをキャンセルします。- オーバーライド:
- クラス
ExecutorConfigurationSupport
のcancelRemainingTask
- パラメーター:
task
- キャンセルするタスク (通常、RunnableFuture
SE )- 関連事項:
schedule
インターフェースからコピーされた説明:TaskScheduler
指定されたRunnable
SE をスケジュールし、トリガーが次の実行時間を示すたびに呼び出します。スケジューラがシャットダウンするか、返された
ScheduledFuture
SE がキャンセルされると、実行は終了します。- 次で指定:
- インターフェース
TaskScheduler
のschedule
- パラメーター:
task
- トリガーが起動するたびに実行する Runnabletrigger
-Trigger
インターフェースの実装、たとえば cron 式をラップするCronTrigger
オブジェクト- 戻り値:
- タスクの実行保留を表す
ScheduledFuture
SE、または指定されたトリガーオブジェクトが決して起動しない場合はnull
(つまり、Trigger.nextExecution(org.springframework.scheduling.TriggerContext)
からnull
を返します) - 関連事項:
schedule
インターフェースからコピーされた説明:TaskScheduler
指定されたRunnable
SE をスケジュールし、指定された実行時間に呼び出します。スケジューラがシャットダウンするか、返された
ScheduledFuture
SE がキャンセルされると、実行は終了します。- 次で指定:
- インターフェース
TaskScheduler
のschedule
- パラメーター:
task
- トリガーが起動するたびに実行する RunnablestartTime
- タスクの望ましい実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)- 戻り値:
- タスクの保留中の実行を表す
ScheduledFuture
SE
scheduleAtFixedRate
public ScheduledFutureSE<?> scheduleAtFixedRate(RunnableSE task, InstantSE startTime, DurationSE period) インターフェースからコピーされた説明:TaskScheduler
指定されたRunnable
SE をスケジュールし、指定された実行時間に呼び出し、その後、指定された期間で呼び出します。スケジューラがシャットダウンするか、返された
ScheduledFuture
SE がキャンセルされると、実行は終了します。- 次で指定:
- インターフェース
TaskScheduler
のscheduleAtFixedRate
- パラメーター:
task
- トリガーが起動するたびに実行する RunnablestartTime
- タスクに必要な最初の実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)period
- タスクの連続した実行の間隔- 戻り値:
- タスクの保留中の実行を表す
ScheduledFuture
SE
scheduleAtFixedRate
インターフェースからコピーされた説明:TaskScheduler
指定されたRunnable
SE をスケジュールします。できるだけ早く開始し、指定された期間で呼び出します。スケジューラがシャットダウンするか、返された
ScheduledFuture
SE がキャンセルされると、実行は終了します。- 次で指定:
- インターフェース
TaskScheduler
のscheduleAtFixedRate
- パラメーター:
task
- トリガーが起動するたびに実行する Runnableperiod
- タスクの連続した実行の間隔- 戻り値:
- タスクの保留中の実行を表す
ScheduledFuture
SE
scheduleWithFixedDelay
public ScheduledFutureSE<?> scheduleWithFixedDelay(RunnableSE task, InstantSE startTime, DurationSE delay) インターフェースからコピーされた説明:TaskScheduler
指定されたRunnable
SE をスケジュールし、指定された実行時間に呼び出し、その後、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。スケジューラがシャットダウンするか、返された
ScheduledFuture
SE がキャンセルされると、実行は終了します。- 次で指定:
- インターフェース
TaskScheduler
のscheduleWithFixedDelay
- パラメーター:
task
- トリガーが起動するたびに実行する RunnablestartTime
- タスクに必要な最初の実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)delay
- ある実行の補完から次の実行の開始までの遅延- 戻り値:
- タスクの保留中の実行を表す
ScheduledFuture
SE
scheduleWithFixedDelay
インターフェースからコピーされた説明:TaskScheduler
指定されたRunnable
SE をスケジュールします。できるだけ早く開始し、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。スケジューラがシャットダウンするか、返された
ScheduledFuture
SE がキャンセルされると、実行は終了します。- 次で指定:
- インターフェース
TaskScheduler
のscheduleWithFixedDelay
- パラメーター:
task
- トリガーが起動するたびに実行する Runnabledelay
- ある実行の補完から次の実行の開始までの遅延- 戻り値:
- タスクの保留中の実行を表す
ScheduledFuture
SE
getScheduledThreadPoolExecutor()
への直接アクセスを優先