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 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() キャンセル時に削除モードの現在の設定を返します。 |
boolean | prefersShortLivedTasks() この TaskExecutor は、長命のタスクよりも短命のタスクを好みますか? |
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(JDK 7+)でキャンセル時の削除モードを設定します。 |
<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, 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
schedule, scheduleAtFixedRate, scheduleAtFixedRate, scheduleWithFixedDelay, scheduleWithFixedDelay
public void setPoolSize(int poolSize)
この設定は、JMX などを介して実行時に変更できます。
public void setRemoveOnCancelPolicy(boolean removeOnCancelPolicy)
ScheduledThreadPoolExecutor
SE(JDK 7+)でキャンセル時の削除モードを設定します。 デフォルトは 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
public boolean prefersShortLivedTasks()
SchedulingTaskExecutor
TaskExecutor
は、長命のタスクよりも短命のタスクを好みますか? SchedulingTaskExecutor
実装は、サブミットされたタスクが単一のタスク実行内で可能な限り少ない作業を実行することを好むかどうかを示すことができます。例: 送信されたタスクは、繰り返しループを個々のサブタスクに分割し、後で実行可能なタスクを送信します(可能な場合)。
これはヒントと見なされる必要があります。もちろん、TaskExecutor
クライアントはこのフラグを自由に無視できるため、SchedulingTaskExecutor
インターフェースは全体的に無視されます。ただし、スレッドプールは通常、より詳細なスケジューリングを実行できるように、短時間のタスクを優先することを示します。
SchedulingTaskExecutor
の prefersShortLivedTasks
true
は、この TaskExecutor
が短期タスクを好む場合 @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