クラス ThreadPoolTaskScheduler
- 実装されているすべてのインターフェース:
SerializableSE、ExecutorSE、ThreadFactorySE、EventListenerSE、Aware、BeanNameAware、DisposableBean、InitializingBean、ApplicationContextAware、ApplicationListener<ContextClosedEvent>、Lifecycle、Phased、SmartLifecycle、AsyncListenableTaskExecutor、AsyncTaskExecutor、TaskExecutor、SchedulingTaskExecutor、TaskScheduler
TaskScheduler インターフェースの標準実装。ネイティブ ScheduledThreadPoolExecutorSE をラップし、それに適用可能なすべての構成オプションを提供します。スケジューラスレッドのデフォルトの数は 1 です。setPoolSize(int) を通じて、より大きな数を構成できます。 これは、Spring の従来のスケジューラバリアントであり、可能な限り ScheduledExecutorServiceSE のセマンティクスに近いものです。タスクの実行は、個別の実行スレッドではなく、スケジューラスレッドで行われます。結果として、ScheduledFutureSE ハンドル (たとえば、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)ThreadPoolTaskExecutorSimpleAsyncTaskScheduler- 連載形式
フィールドのサマリー
クラス org.springframework.scheduling.concurrent.ExecutorConfigurationSupport から継承されたフィールド
DEFAULT_PHASE, loggerインターフェース org.springframework.core.task.AsyncTaskExecutor から継承されたフィールド
TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITEコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected voidExecutorService.shutdownNow()から返された、実行を開始していない指定された残りのタスクをキャンセルします。protected ScheduledExecutorServiceSEcreateExecutor(int poolSize, ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) 新しいScheduledExecutorServiceSE インスタンスを作成します。voidexecute(RunnableSE task) 指定されたtaskを実行します。int現在アクティブなスレッドの数を返します。getClock()スケジューリングの目的で使用する監視を返します。int現在のプールサイズを返します。ネイティブアクセスの基になる ScheduledExecutorService を返します。可能であれば、基礎となる ScheduledThreadPoolExecutor を返します。protected ExecutorServiceSEinitializeExecutor(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) ターゲットExecutorServiceSE インスタンスを作成します。boolean使用すべきではありません。schedule(RunnableSE task, InstantSE startTime) 指定されたRunnableSE をスケジュールし、指定された実行時間に呼び出します。schedule(RunnableSE task, Trigger trigger) 指定されたRunnableSE をスケジュールし、トリガーが次の実行時間を示すたびに呼び出します。scheduleAtFixedRate(RunnableSE task, DurationSE period) 指定されたRunnableSE をスケジュールします。できるだけ早く開始し、指定された期間で呼び出します。scheduleAtFixedRate(RunnableSE task, InstantSE startTime, DurationSE period) 指定されたRunnableSE をスケジュールし、指定された実行時間に呼び出し、その後、指定された期間で呼び出します。scheduleWithFixedDelay(RunnableSE task, DurationSE delay) 指定されたRunnableSE をスケジュールします。できるだけ早く開始し、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。scheduleWithFixedDelay(RunnableSE task, InstantSE startTime, DurationSE delay) 指定されたRunnableSE をスケジュールし、指定された実行時間に呼び出し、その後、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。voidスケジューリングの目的で使用する監視を設定します。voidsetContinueExistingPeriodicTasksAfterShutdownPolicy(boolean flag) このエグゼキュータがシャットダウンされた場合でも、既存の定期的なタスクを続行するかどうかを設定します。voidsetErrorHandler(ErrorHandler errorHandler) カスタムErrorHandler戦略を設定します。voidsetExecuteExistingDelayedTasksAfterShutdownPolicy(boolean flag) このエグゼキュータがシャットダウンされている場合でも、既存の遅延タスクを実行するかどうかを設定します。voidsetPoolSize(int poolSize) ScheduledExecutorService のプールサイズを設定します。voidsetRemoveOnCancelPolicy(boolean flag) ScheduledThreadPoolExecutorSE でキャンセル時に削除モードを設定します。voidsetTaskDecorator(TaskDecorator taskDecorator) 実行しようとしているRunnableSE に適用するカスタム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) ScheduledThreadPoolExecutorSE でキャンセル時に削除モードを設定します。デフォルトは
falseです。trueに設定されている場合、ターゲットエグゼキュータは削除オンキャンセルモードに切り替えられます(可能な場合)。この設定は、JMX などを介して実行時に変更できます。
setContinueExistingPeriodicTasksAfterShutdownPolicy
public void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean flag) このエグゼキュータがシャットダウンされた場合でも、既存の定期的なタスクを続行するかどうかを設定します。デフォルトは
falseです。trueに設定されている場合、ターゲットエグゼキュータは継続的な定期タスクに切り替えられます(可能な場合)。この設定は、JMX などを介して実行時に変更できます。
setExecuteExistingDelayedTasksAfterShutdownPolicy
public void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean flag) このエグゼキュータがシャットダウンされている場合でも、既存の遅延タスクを実行するかどうかを設定します。デフォルトは
trueです。falseに設定されている場合、ターゲットエグゼキュータは残りのタスクをドロップするように切り替えられます(可能な場合)。この設定は、JMX などを介して実行時に変更できます。
setTaskDecorator
実行しようとしているRunnableSE に適用するカスタムTaskDecoratorを指定します。このようなデコレータは、ユーザー指定の
Runnable/Callableには適用されず、スケジュールされた実行コールバック (ユーザー指定のタスクのラッパー) に適用されることに注意してください。主な使用例は、タスクの呼び出しの周囲に実行コンテキストを設定するか、タスク実行の監視 / 統計を提供することです。
- 導入:
- 6.2
setErrorHandler
カスタムErrorHandler戦略を設定します。setClock
スケジューリングの目的で使用する監視を設定します。デフォルトのクロックは、デフォルトのタイムゾーンのシステムクロックです。
- 導入:
- 5.3
- 関連事項:
getClock
インターフェースからコピーされた説明:TaskSchedulerスケジューリングの目的で使用する監視を返します。- 次で指定:
- インターフェース
TaskSchedulerのgetClock - 関連事項:
initializeExecutor
protected ExecutorServiceSE initializeExecutor(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) クラスからコピーされた説明:ExecutorConfigurationSupportターゲットExecutorServiceSE インスタンスを作成します。afterPropertiesSetによって呼び出されます。- 次で指定:
- クラス
ExecutorConfigurationSupportのinitializeExecutor - パラメーター:
threadFactory- 使用する ThreadFactoryrejectedExecutionHandler- 使用する RejectedExecutionHandler- 戻り値:
- 新しい ExecutorService インスタンス
- 関連事項:
createExecutor
protected ScheduledExecutorServiceSE createExecutor(int poolSize, ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) 新しいScheduledExecutorServiceSE インスタンスを作成します。デフォルト実装は
ScheduledThreadPoolExecutorSE を作成します。サブクラスでオーバーライドして、カスタムScheduledExecutorServiceSE インスタンスを提供できます。- パラメーター:
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()現在のプールサイズを返します。基礎となる
ScheduledThreadPoolExecutorSE が必要です。getActiveCount
public int getActiveCount()現在アクティブなスレッドの数を返します。基礎となる
ScheduledThreadPoolExecutorSE が必要です。isRemoveOnCancelPolicy
使用すべきではありません。5.3.9 の時点で、getScheduledThreadPoolExecutor()への直接アクセスを優先キャンセル時に削除モードの現在の設定を返します。基礎となる
ScheduledThreadPoolExecutorSE が必要です。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
インターフェースからコピーされた説明:AsyncTaskExecutorCallable タスクを送信して実行し、そのタスクを表す Future を受け取ります。Future は、完了時に Callable の結果を返します。6.1 では、このメソッドには
TaskExecutor.execute(Runnable)に委譲するデフォルトの実装が付属しています。- 次で指定:
- インターフェース
AsyncTaskExecutorのsubmit - パラメーター:
task- 実行するCallable(非null)- 戻り値:
- タスクの保留中の完了を表す Future
submitListenable
インターフェースからコピーされた説明:AsyncListenableTaskExecutorRunnableタスクを実行のために送信し、そのタスクを表すListenableFutureを受け取ります。Future は完了時にnullの結果を返します。- 次で指定:
- インターフェース
AsyncListenableTaskExecutorのsubmitListenable - パラメーター:
task- 実行するRunnable(非null)- 戻り値:
- 保留中のタスクの完了を表す
ListenableFuture
submitListenable
インターフェースからコピーされた説明:AsyncListenableTaskExecutorCallableタスクを実行のために送信し、そのタスクを表すListenableFutureを受け取ります。Future は、完了時に Callable の結果を返します。- 次で指定:
- インターフェース
AsyncListenableTaskExecutorのsubmitListenable - パラメーター:
task- 実行するCallable(非null)- 戻り値:
- 保留中のタスクの完了を表す
ListenableFuture
cancelRemainingTask
クラスからコピーされた説明:ExecutorConfigurationSupportExecutorService.shutdownNow()から返された、実行を開始していない指定された残りのタスクをキャンセルします。- オーバーライド:
- クラス
ExecutorConfigurationSupportのcancelRemainingTask - パラメーター:
task- キャンセルするタスク (通常、RunnableFutureSE )- 関連事項:
schedule
インターフェースからコピーされた説明:TaskScheduler指定されたRunnableSE をスケジュールし、トリガーが次の実行時間を示すたびに呼び出します。スケジューラがシャットダウンするか、返された
ScheduledFutureSE がキャンセルされると、実行は終了します。- 次で指定:
- インターフェース
TaskSchedulerのschedule - パラメーター:
task- トリガーが起動するたびに実行する Runnabletrigger-Triggerインターフェースの実装、たとえば cron 式をラップするCronTriggerオブジェクト- 戻り値:
- タスクの実行保留を表す
ScheduledFutureSE、または指定されたトリガーオブジェクトが決して起動しない場合はnull(つまり、Trigger.nextExecution(org.springframework.scheduling.TriggerContext)からnullを返します) - 関連事項:
schedule
インターフェースからコピーされた説明:TaskScheduler指定されたRunnableSE をスケジュールし、指定された実行時間に呼び出します。スケジューラがシャットダウンするか、返された
ScheduledFutureSE がキャンセルされると、実行は終了します。- 次で指定:
- インターフェース
TaskSchedulerのschedule - パラメーター:
task- トリガーが起動するたびに実行する RunnablestartTime- タスクの望ましい実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)- 戻り値:
- タスクの保留中の実行を表す
ScheduledFutureSE
scheduleAtFixedRate
public ScheduledFutureSE<?> scheduleAtFixedRate(RunnableSE task, InstantSE startTime, DurationSE period) インターフェースからコピーされた説明:TaskScheduler指定されたRunnableSE をスケジュールし、指定された実行時間に呼び出し、その後、指定された期間で呼び出します。スケジューラがシャットダウンするか、返された
ScheduledFutureSE がキャンセルされると、実行は終了します。- 次で指定:
- インターフェース
TaskSchedulerのscheduleAtFixedRate - パラメーター:
task- トリガーが起動するたびに実行する RunnablestartTime- タスクに必要な最初の実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)period- タスクの連続した実行の間隔- 戻り値:
- タスクの保留中の実行を表す
ScheduledFutureSE
scheduleAtFixedRate
インターフェースからコピーされた説明:TaskScheduler指定されたRunnableSE をスケジュールします。できるだけ早く開始し、指定された期間で呼び出します。スケジューラがシャットダウンするか、返された
ScheduledFutureSE がキャンセルされると、実行は終了します。- 次で指定:
- インターフェース
TaskSchedulerのscheduleAtFixedRate - パラメーター:
task- トリガーが起動するたびに実行する Runnableperiod- タスクの連続した実行の間隔- 戻り値:
- タスクの保留中の実行を表す
ScheduledFutureSE
scheduleWithFixedDelay
public ScheduledFutureSE<?> scheduleWithFixedDelay(RunnableSE task, InstantSE startTime, DurationSE delay) インターフェースからコピーされた説明:TaskScheduler指定されたRunnableSE をスケジュールし、指定された実行時間に呼び出し、その後、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。スケジューラがシャットダウンするか、返された
ScheduledFutureSE がキャンセルされると、実行は終了します。- 次で指定:
- インターフェース
TaskSchedulerのscheduleWithFixedDelay - パラメーター:
task- トリガーが起動するたびに実行する RunnablestartTime- タスクに必要な最初の実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)delay- ある実行の補完から次の実行の開始までの遅延- 戻り値:
- タスクの保留中の実行を表す
ScheduledFutureSE
scheduleWithFixedDelay
インターフェースからコピーされた説明:TaskScheduler指定されたRunnableSE をスケジュールします。できるだけ早く開始し、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。スケジューラがシャットダウンするか、返された
ScheduledFutureSE がキャンセルされると、実行は終了します。- 次で指定:
- インターフェース
TaskSchedulerのscheduleWithFixedDelay - パラメーター:
task- トリガーが起動するたびに実行する Runnabledelay- ある実行の補完から次の実行の開始までの遅延- 戻り値:
- タスクの保留中の実行を表す
ScheduledFutureSE
getScheduledThreadPoolExecutor()への直接アクセスを優先