public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport implements AsyncListenableTaskExecutor, SchedulingTaskExecutor, TaskScheduler
ScheduledThreadPoolExecutor
SE をラップする Spring の TaskScheduler
インターフェースの実装。setPoolSize(int)
, setRemoveOnCancelPolicy(boolean)
, ExecutorConfigurationSupport.setThreadFactory(java.util.concurrent.ThreadFactory)
, setErrorHandler(org.springframework.util.ErrorHandler)
, 直列化された形式 logger
TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE
コンストラクターと説明 |
---|
ThreadPoolTaskScheduler() |
修飾子と型 | メソッドと説明 |
---|---|
protected void | cancelRemainingTask(RunnableSE task) ExecutorService.shutdownNow() SE から返された、実行を決して推奨しない残りのタスクをキャンセルします。 |
protected ScheduledExecutorServiceSE | createExecutor(int poolSize, ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) 新しい ScheduledExecutorService SE インスタンスを作成します。 |
void | execute(RunnableSE task) 指定された task を実行します。 |
void | execute(RunnableSE task, long startTimeout) 指定された task を実行します。 |
int | getActiveCount() 現在アクティブなスレッドの数を返します。 |
int | getPoolSize() 現在のプールサイズを返します。 |
ScheduledExecutorServiceSE | getScheduledExecutor() ネイティブアクセスの基になる ScheduledExecutorService を返します。 |
ScheduledThreadPoolExecutorSE | getScheduledThreadPoolExecutor() 可能であれば、基礎となる ScheduledThreadPoolExecutor を返します。 |
protected ExecutorServiceSE | initializeExecutor(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) ターゲット ExecutorService SE インスタンスを作成します。 |
boolean | isRemoveOnCancelPolicy() キャンセル時に削除モードの現在の設定を返します。 |
ScheduledFutureSE<?> | schedule(RunnableSE task, DateSE startTime) 指定された Runnable SE をスケジュールし、指定された実行時間に呼び出します。 |
ScheduledFutureSE<?> | schedule(RunnableSE task, Trigger trigger) 指定された Runnable SE をスケジュールし、トリガーが次の実行時間を示すたびに呼び出します。 |
ScheduledFutureSE<?> | scheduleAtFixedRate(RunnableSE task, DateSE startTime, long period) 指定された Runnable SE をスケジュールし、指定された実行時間に呼び出し、その後、指定された期間で呼び出します。 |
ScheduledFutureSE<?> | scheduleAtFixedRate(RunnableSE task, long period) 指定された Runnable SE をスケジュールします。できるだけ早く開始し、指定された期間で呼び出します。 |
ScheduledFutureSE<?> | scheduleWithFixedDelay(RunnableSE task, DateSE startTime, long delay) 指定された Runnable SE をスケジュールし、指定された実行時間に呼び出し、その後、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。 |
ScheduledFutureSE<?> | scheduleWithFixedDelay(RunnableSE task, long delay) 指定された Runnable SE をスケジュールします。できるだけ早く開始し、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。 |
void | setErrorHandler(ErrorHandler errorHandler) カスタム ErrorHandler 戦略を設定します。 |
void | setPoolSize(int poolSize) ScheduledExecutorService のプールサイズを設定します。 |
void | setRemoveOnCancelPolicy(boolean removeOnCancelPolicy) ScheduledThreadPoolExecutor SE でキャンセル時に削除モードを設定します。 |
<T> FutureSE<T> | submit(CallableSE<T> task) Callable タスクを送信して実行し、そのタスクを表す Future を受け取ります。 |
FutureSE<?> | submit(RunnableSE task) 実行可能な Runnable タスクを送信し、そのタスクを表す Future を受け取ります。 |
<T> ListenableFuture<T> | submitListenable(CallableSE<T> task) Callable タスクを実行のために送信し、そのタスクを表す ListenableFuture を受け取ります。 |
ListenableFuture<?> | submitListenable(RunnableSE task) Runnable タスクを実行のために送信し、そのタスクを表す ListenableFuture を受け取ります。 |
afterPropertiesSet, destroy, initialize, setAwaitTerminationMillis, setAwaitTerminationSeconds, setBeanName, setRejectedExecutionHandler, setThreadFactory, setThreadNamePrefix, setWaitForTasksToCompleteOnShutdown, shutdown
newThread
createThread, getDefaultThreadNamePrefix, getThreadGroup, getThreadNamePrefix, getThreadPriority, isDaemon, nextThreadName, setDaemon, setThreadGroup, setThreadGroupName, setThreadPriority
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
prefersShortLivedTasks
schedule, scheduleAtFixedRate, scheduleAtFixedRate, scheduleWithFixedDelay, scheduleWithFixedDelay
public void setPoolSize(int poolSize)
この設定は、JMX などを介して実行時に変更できます。
public void setRemoveOnCancelPolicy(boolean removeOnCancelPolicy)
ScheduledThreadPoolExecutor
SE でキャンセル時に削除モードを設定します。 デフォルトは false
です。true
に設定されている場合、ターゲットエグゼキューターはキャンセル時に削除モードに切り替えられます(可能な場合は、ソフトフォールバックが使用されます)。
この設定は、JMX などを介して実行時に変更できます。
public void setErrorHandler(ErrorHandler errorHandler)
ErrorHandler
戦略を設定します。protected ExecutorServiceSE initializeExecutor(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler)
ExecutorConfigurationSupport
ExecutorService
SE インスタンスを作成します。afterPropertiesSet
によって呼び出されます。ExecutorConfigurationSupport
の initializeExecutor
threadFactory
- 使用する ThreadFactoryrejectedExecutionHandler
- 使用する RejectedExecutionHandlerExecutorConfigurationSupport.afterPropertiesSet()
protected ScheduledExecutorServiceSE createExecutor(int poolSize, ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler)
ScheduledExecutorService
SE インスタンスを作成します。 デフォルト実装は ScheduledThreadPoolExecutor
SE を作成します。サブクラスでオーバーライドして、カスタム ScheduledExecutorService
SE インスタンスを提供できます。
poolSize
- 指定されたプールサイズ threadFactory
- 使用する ThreadFactoryrejectedExecutionHandler
- 使用する RejectedExecutionHandlerExecutorConfigurationSupport.afterPropertiesSet()
, ScheduledThreadPoolExecutor
SEpublic ScheduledExecutorServiceSE getScheduledExecutor() throws IllegalStateExceptionSE
null
)IllegalStateExceptionSE
- ThreadPoolTaskScheduler がまだ初期化されていない場合 public ScheduledThreadPoolExecutorSE getScheduledThreadPoolExecutor() throws IllegalStateExceptionSE
null
)IllegalStateExceptionSE
- ThreadPoolTaskScheduler がまだ初期化されていない場合、または基礎となる ScheduledExecutorService が ScheduledThreadPoolExecutor でない場合 getScheduledExecutor()
public int getPoolSize()
基礎となる ScheduledThreadPoolExecutor
SE が必要です。
public boolean isRemoveOnCancelPolicy()
基礎となる ScheduledThreadPoolExecutor
SE が必要です。
public int getActiveCount()
基礎となる ScheduledThreadPoolExecutor
SE が必要です。
public void execute(RunnableSE task)
TaskExecutor
task
を実行します。実装が非同期実行戦略を使用している場合、呼び出しはすぐに戻るか、同期実行の場合はブロックする可能性があります。
ExecutorSE
の executeSE
TaskExecutor
の execute
task
- 実行する Runnable
(非 null
)public void execute(RunnableSE task, long startTimeout)
AsyncTaskExecutor
task
を実行します。AsyncTaskExecutor
の execute
task
- 実行する Runnable
(非 null
)startTimeout
- タスクが開始される予定の期間(ミリ秒)。これはエグゼキューターへのヒントとして意図されており、即時タスクの優先処理を可能にします。一般的な値は AsyncTaskExecutor.TIMEOUT_IMMEDIATE
または AsyncTaskExecutor.TIMEOUT_INDEFINITE
(TaskExecutor.execute(Runnable)
で使用されるデフォルト)です。public FutureSE<?> submit(RunnableSE task)
AsyncTaskExecutor
null
の結果を返します。AsyncTaskExecutor
の submit
task
- 実行する Runnable
(非 null
)public <T> FutureSE<T> submit(CallableSE<T> task)
AsyncTaskExecutor
AsyncTaskExecutor
の submit
task
- 実行する Callable
(非 null
)public ListenableFuture<?> submitListenable(RunnableSE task)
AsyncListenableTaskExecutor
Runnable
タスクを実行のために送信し、そのタスクを表す ListenableFuture
を受け取ります。Future は完了時に null
の結果を返します。AsyncListenableTaskExecutor
の submitListenable
task
- 実行する Runnable
(非 null
)ListenableFuture
public <T> ListenableFuture<T> submitListenable(CallableSE<T> task)
AsyncListenableTaskExecutor
Callable
タスクを実行のために送信し、そのタスクを表す ListenableFuture
を受け取ります。Future は、完了時に Callable の結果を返します。AsyncListenableTaskExecutor
の submitListenable
task
- 実行する Callable
(非 null
)ListenableFuture
protected void cancelRemainingTask(RunnableSE task)
ExecutorConfigurationSupport
ExecutorService.shutdownNow()
SE から返された、実行を決して推奨しない残りのタスクをキャンセルします。ExecutorConfigurationSupport
の cancelRemainingTask
task
- キャンセルするタスク (通常、RunnableFuture
SE )ExecutorConfigurationSupport.shutdown()
, Future.cancel(boolean)
SE@Nullable public ScheduledFutureSE<?> schedule(RunnableSE task, Trigger trigger)
TaskScheduler
Runnable
SE をスケジュールし、トリガーが次の実行時間を示すたびに呼び出します。 スケジューラがシャットダウンするか、返された ScheduledFuture
SE がキャンセルされると、実行は終了します。
TaskScheduler
の schedule
task
- トリガーが起動するたびに実行する Runnabletrigger
- Trigger
インターフェースの実装。cron 式をラップする CronTrigger
オブジェクト ScheduledFuture
SE、または指定された Trigger オブジェクトが起動しない場合は null
(つまり、Trigger.nextExecutionTime(org.springframework.scheduling.TriggerContext)
から null
を返します)CronTrigger
public ScheduledFutureSE<?> schedule(RunnableSE task, DateSE startTime)
TaskScheduler
Runnable
SE をスケジュールし、指定された実行時間に呼び出します。 スケジューラがシャットダウンするか、返された ScheduledFuture
SE がキャンセルされると、実行は終了します。
TaskScheduler
の schedule
task
- トリガーが起動するたびに実行する RunnablestartTime
- タスクの望ましい実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)ScheduledFuture
SEpublic ScheduledFutureSE<?> scheduleAtFixedRate(RunnableSE task, DateSE startTime, long period)
TaskScheduler
Runnable
SE をスケジュールし、指定された実行時間に呼び出し、その後、指定された期間で呼び出します。 スケジューラがシャットダウンするか、返された ScheduledFuture
SE がキャンセルされると、実行は終了します。
TaskScheduler
の scheduleAtFixedRate
task
- トリガーが起動するたびに実行する RunnablestartTime
- タスクに必要な最初の実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)period
- タスクの連続した実行の間隔 (ミリ秒単位)ScheduledFuture
SEpublic ScheduledFutureSE<?> scheduleAtFixedRate(RunnableSE task, long period)
TaskScheduler
Runnable
SE をスケジュールします。できるだけ早く開始し、指定された期間で呼び出します。 スケジューラがシャットダウンするか、返された ScheduledFuture
SE がキャンセルされると、実行は終了します。
TaskScheduler
の scheduleAtFixedRate
task
- トリガーが起動するたびに実行する Runnableperiod
- タスクの連続した実行の間隔 (ミリ秒単位)ScheduledFuture
SEpublic ScheduledFutureSE<?> scheduleWithFixedDelay(RunnableSE task, DateSE startTime, long delay)
TaskScheduler
Runnable
SE をスケジュールし、指定された実行時間に呼び出し、その後、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。 スケジューラがシャットダウンするか、返された ScheduledFuture
SE がキャンセルされると、実行は終了します。
TaskScheduler
の scheduleWithFixedDelay
task
- トリガーが起動するたびに実行する RunnablestartTime
- タスクに必要な最初の実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)delay
- ある実行の補完から次の実行の開始までの遅延 (ミリ秒単位)ScheduledFuture
SEpublic ScheduledFutureSE<?> scheduleWithFixedDelay(RunnableSE task, long delay)
TaskScheduler
Runnable
SE をスケジュールします。できるだけ早く開始し、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。 スケジューラがシャットダウンするか、返された ScheduledFuture
SE がキャンセルされると、実行は終了します。
TaskScheduler
の scheduleWithFixedDelay
task
- トリガーが起動するたびに実行する Runnabledelay
- ある実行の補完から次の実行の開始までの遅延 (ミリ秒単位)ScheduledFuture
SE