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