public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport implements AsyncListenableTaskExecutor, SchedulingTaskExecutor, TaskScheduler
ScheduledThreadPoolExecutorSE をラップする Spring の TaskScheduler インターフェースの実装。setPoolSize(int), setRemoveOnCancelPolicy(boolean), ExecutorConfigurationSupport.setThreadFactory(java.util.concurrent.ThreadFactory), setErrorHandler(org.springframework.util.ErrorHandler), 連載形式 loggerTIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE| コンストラクターと説明 |
|---|
ThreadPoolTaskScheduler() |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected ScheduledExecutorServiceSE | createExecutor(int poolSize, ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler) 新しい ScheduledExecutorServiceSE インスタンスを作成します。 |
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) ターゲット ExecutorServiceSE インスタンスを作成します。 |
boolean | isRemoveOnCancelPolicy() キャンセル時に削除モードの現在の設定を返します。 |
boolean | prefersShortLivedTasks() この TaskExecutor は、長命のタスクよりも短命のタスクを好みますか? |
ScheduledFutureSE<?> | schedule(RunnableSE task, DateSE startTime) 指定された RunnableSE をスケジュールし、指定された実行時間に呼び出します。 |
ScheduledFutureSE<?> | schedule(RunnableSE task, Trigger trigger) 指定された RunnableSE をスケジュールし、トリガーが次の実行時間を示すたびに呼び出します。 |
ScheduledFutureSE<?> | scheduleAtFixedRate(RunnableSE task, DateSE startTime, long period) 指定された RunnableSE をスケジュールし、指定された実行時間に呼び出し、その後、指定された期間で呼び出します。 |
ScheduledFutureSE<?> | scheduleAtFixedRate(RunnableSE task, long period) 指定された RunnableSE をスケジュールします。できるだけ早く開始し、指定された期間で呼び出します。 |
ScheduledFutureSE<?> | scheduleWithFixedDelay(RunnableSE task, DateSE startTime, long delay) 指定された RunnableSE をスケジュールし、指定された実行時間に呼び出し、その後、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。 |
ScheduledFutureSE<?> | scheduleWithFixedDelay(RunnableSE task, long delay) 指定された RunnableSE をスケジュールします。できるだけ早く開始し、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。 |
void | setErrorHandler(ErrorHandler errorHandler) カスタム ErrorHandler 戦略を設定します。 |
void | setPoolSize(int poolSize)ScheduledExecutorService のプールサイズを設定します。 |
void | setRemoveOnCancelPolicy(boolean removeOnCancelPolicy)ScheduledThreadPoolExecutorSE(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, shutdownnewThreadcreateThread, getDefaultThreadNamePrefix, getThreadGroup, getThreadNamePrefix, getThreadPriority, isDaemon, nextThreadName, setDaemon, setThreadGroup, setThreadGroupName, setThreadPrioritycloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEschedule, scheduleAtFixedRate, scheduleAtFixedRate, scheduleWithFixedDelay, scheduleWithFixedDelaypublic void setPoolSize(int poolSize)
この設定は、JMX などを介して実行時に変更できます。
public void setRemoveOnCancelPolicy(boolean removeOnCancelPolicy)
ScheduledThreadPoolExecutorSE(JDK 7+)でキャンセル時の削除モードを設定します。 デフォルトは false です。true に設定されている場合、ターゲットエグゼキューターはキャンセル時に削除モードに切り替えられます(可能な場合は、ソフトフォールバックが使用されます)。
この設定は、JMX などを介して実行時に変更できます。
public void setErrorHandler(ErrorHandler errorHandler)
ErrorHandler 戦略を設定します。protected ExecutorServiceSE initializeExecutor(ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler)
ExecutorConfigurationSupportExecutorServiceSE インスタンスを作成します。afterPropertiesSet によって呼び出されます。ExecutorConfigurationSupport の initializeExecutor threadFactory - 使用する ThreadFactoryrejectedExecutionHandler - 使用する RejectedExecutionHandlerExecutorConfigurationSupport.afterPropertiesSet()protected ScheduledExecutorServiceSE createExecutor(int poolSize, ThreadFactorySE threadFactory, RejectedExecutionHandlerSE rejectedExecutionHandler)
ScheduledExecutorServiceSE インスタンスを作成します。 デフォルト実装は ScheduledThreadPoolExecutorSE を作成します。サブクラスでオーバーライドして、カスタム ScheduledExecutorServiceSE インスタンスを提供できます。
poolSize - 指定されたプールサイズ threadFactory - 使用する ThreadFactoryrejectedExecutionHandler - 使用する RejectedExecutionHandlerExecutorConfigurationSupport.afterPropertiesSet(), ScheduledThreadPoolExecutorSEpublic ScheduledExecutorServiceSE getScheduledExecutor() throws IllegalStateExceptionSE
null)IllegalStateExceptionSE - ThreadPoolTaskScheduler がまだ初期化されていない場合 public ScheduledThreadPoolExecutorSE getScheduledThreadPoolExecutor() throws IllegalStateExceptionSE
null)IllegalStateExceptionSE - ThreadPoolTaskScheduler がまだ初期化されていない場合、または基礎となる ScheduledExecutorService が ScheduledThreadPoolExecutor でない場合 getScheduledExecutor()public int getPoolSize()
基礎となる ScheduledThreadPoolExecutorSE が必要です。
public boolean isRemoveOnCancelPolicy()
基礎となる ScheduledThreadPoolExecutorSE が必要です。
public int getActiveCount()
基礎となる ScheduledThreadPoolExecutorSE が必要です。
public void execute(RunnableSE task)
TaskExecutortask を実行します。実装が非同期実行戦略を使用している場合、呼び出しはすぐに戻るか、同期実行の場合はブロックする可能性があります。
ExecutorSE の executeSE TaskExecutor の execute task - 実行する Runnable (非 null)public void execute(RunnableSE task, long startTimeout)
AsyncTaskExecutortask を実行します。AsyncTaskExecutor の execute task - 実行する Runnable (非 null)startTimeout - タスクが開始される予定の期間(ミリ秒)。これはエグゼキューターへのヒントとして意図されており、即時タスクの優先処理を可能にします。一般的な値は AsyncTaskExecutor.TIMEOUT_IMMEDIATE または AsyncTaskExecutor.TIMEOUT_INDEFINITE(TaskExecutor.execute(Runnable) で使用されるデフォルト)です。public FutureSE<?> submit(RunnableSE task)
AsyncTaskExecutornull の結果を返します。AsyncTaskExecutor の submit task - 実行する Runnable (非 null)public <T> FutureSE<T> submit(CallableSE<T> task)
AsyncTaskExecutorAsyncTaskExecutor の submit task - 実行する Callable (非 null)public ListenableFuture<?> submitListenable(RunnableSE task)
AsyncListenableTaskExecutorRunnable タスクを実行のために送信し、そのタスクを表す ListenableFuture を受け取ります。Future は完了時に null の結果を返します。AsyncListenableTaskExecutor の submitListenable task - 実行する Runnable (非 null)ListenableFuture public <T> ListenableFuture<T> submitListenable(CallableSE<T> task)
AsyncListenableTaskExecutorCallable タスクを実行のために送信し、そのタスクを表す ListenableFuture を受け取ります。Future は、完了時に Callable の結果を返します。AsyncListenableTaskExecutor の submitListenable task - 実行する Callable (非 null)ListenableFuture public boolean prefersShortLivedTasks()
SchedulingTaskExecutorTaskExecutor は、長命のタスクよりも短命のタスクを好みますか? SchedulingTaskExecutor 実装は、サブミットされたタスクが単一のタスク実行内で可能な限り少ない作業を実行することを好むかどうかを示すことができます。例: 送信されたタスクは、繰り返しループを個々のサブタスクに分割し、後で実行可能なタスクを送信します(可能な場合)。
これはヒントと見なされる必要があります。もちろん、TaskExecutor クライアントはこのフラグを自由に無視できるため、SchedulingTaskExecutor インターフェースは全体的に無視されます。ただし、スレッドプールは通常、より詳細なスケジューリングを実行できるように、短時間のタスクを優先することを示します。
SchedulingTaskExecutor の prefersShortLivedTasks true は、この TaskExecutor が短期タスクを好む場合 @Nullable public ScheduledFutureSE<?> schedule(RunnableSE task, Trigger trigger)
TaskSchedulerRunnableSE をスケジュールし、トリガーが次の実行時間を示すたびに呼び出します。 スケジューラがシャットダウンするか、返された ScheduledFutureSE がキャンセルされると、実行は終了します。
TaskScheduler の schedule task - トリガーが起動するたびに実行する Runnabletrigger - Trigger インターフェースの実装。cron 式をラップする CronTrigger オブジェクト ScheduledFutureSE、または指定された Trigger オブジェクトが起動しない場合は null (つまり、Trigger.nextExecutionTime(org.springframework.scheduling.TriggerContext) から null を返します)CronTriggerpublic ScheduledFutureSE<?> schedule(RunnableSE task, DateSE startTime)
TaskSchedulerRunnableSE をスケジュールし、指定された実行時間に呼び出します。 スケジューラがシャットダウンするか、返された ScheduledFutureSE がキャンセルされると、実行は終了します。
TaskScheduler の schedule task - トリガーが起動するたびに実行する RunnablestartTime - タスクの望ましい実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)ScheduledFutureSEpublic ScheduledFutureSE<?> scheduleAtFixedRate(RunnableSE task, DateSE startTime, long period)
TaskSchedulerRunnableSE をスケジュールし、指定された実行時間に呼び出し、その後、指定された期間で呼び出します。 スケジューラがシャットダウンするか、返された ScheduledFutureSE がキャンセルされると、実行は終了します。
TaskScheduler の scheduleAtFixedRate task - トリガーが起動するたびに実行する RunnablestartTime - タスクに必要な最初の実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)period - タスクの連続した実行の間隔 (ミリ秒単位)ScheduledFutureSEpublic ScheduledFutureSE<?> scheduleAtFixedRate(RunnableSE task, long period)
TaskSchedulerRunnableSE をスケジュールします。できるだけ早く開始し、指定された期間で呼び出します。 スケジューラがシャットダウンするか、返された ScheduledFutureSE がキャンセルされると、実行は終了します。
TaskScheduler の scheduleAtFixedRate task - トリガーが起動するたびに実行する Runnableperiod - タスクの連続した実行の間隔 (ミリ秒単位)ScheduledFutureSEpublic ScheduledFutureSE<?> scheduleWithFixedDelay(RunnableSE task, DateSE startTime, long delay)
TaskSchedulerRunnableSE をスケジュールし、指定された実行時間に呼び出し、その後、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。 スケジューラがシャットダウンするか、返された ScheduledFutureSE がキャンセルされると、実行は終了します。
TaskScheduler の scheduleWithFixedDelay task - トリガーが起動するたびに実行する RunnablestartTime - タスクに必要な最初の実行時間 (これが過去の場合、タスクはすぐに、つまりできるだけ早く実行されます)delay - ある実行の補完から次の実行の開始までの遅延 (ミリ秒単位)ScheduledFutureSEpublic ScheduledFutureSE<?> scheduleWithFixedDelay(RunnableSE task, long delay)
TaskSchedulerRunnableSE をスケジュールします。できるだけ早く開始し、1 つの実行が完了してから次の実行が開始されるまでの間に指定された遅延で呼び出します。 スケジューラがシャットダウンするか、返された ScheduledFutureSE がキャンセルされると、実行は終了します。
TaskScheduler の scheduleWithFixedDelay task - トリガーが起動するたびに実行する Runnabledelay - ある実行の補完から次の実行の開始までの遅延 (ミリ秒単位)ScheduledFutureSE