public class ConcurrentTaskExecutor extends ObjectSE implements AsyncListenableTaskExecutor, SchedulingTaskExecutor
java.util.concurrent.Executor を受け取り、Spring TaskExecutor を公開するアダプター。また、拡張 java.util.concurrent.ExecutorService を検出し、それに応じて AsyncTaskExecutor インターフェースを適合させます。ManagedTaskEE アダプターを公開するために JSR-236 ManagedExecutorServiceEE を自動検出し、SchedulingAwareRunnable に基づく長期実行ヒントと、指定された Runnable/Callable の toString() に基づく識別名を公開します。Java EE 7 環境での JSR-236 スタイルのルックアップについては、DefaultManagedTaskExecutor の使用を検討してください。
ThreadPoolExecutorSE を Bean スタイルで定義し、Spring TaskExecutor として直接公開できるビルド済みの ThreadPoolTaskExecutor があることに注意してください。これは、現在のアダプタークラスの個別の定義を使用した生の ThreadPoolExecutor 定義の便利な代替手段です。
ExecutorSE, ExecutorServiceSE, ThreadPoolExecutorSE, ExecutorsSE, DefaultManagedTaskExecutor, ThreadPoolTaskExecutor| 修飾子と型 | クラスと説明 |
|---|---|
protected static class | ConcurrentTaskExecutor.ManagedTaskBuilder 指定された Runnable/Callable を JSR-236 ManagedTask でラップし、 SchedulingAwareRunnable と指定された ID 名に基づいて実行時間の長いヒントを公開するデリゲート。 |
TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE| コンストラクターと説明 |
|---|
ConcurrentTaskExecutor() デフォルトとしてシングルスレッドエグゼキュータを使用して、新しい ConcurrentTaskExecutor を作成します。 |
ConcurrentTaskExecutor(ExecutorSE executor) 指定された ExecutorSE を使用して、新しい ConcurrentTaskExecutor を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | execute(RunnableSE task) 指定された task を実行します。 |
void | execute(RunnableSE task, long startTimeout) 指定された task を実行します。 |
ExecutorSE | getConcurrentExecutor() このアダプターが委譲する ExecutorSE を返します。 |
void | setConcurrentExecutor(ExecutorSE executor) 委譲先の ExecutorSE を指定します。 |
void | setTaskDecorator(TaskDecorator taskDecorator) 実行しようとしている RunnableSE に適用するカスタム TaskDecorator を指定します。 |
<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 を受け取ります。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEprefersShortLivedTaskspublic ConcurrentTaskExecutor()
public ConcurrentTaskExecutor(@Nullable ExecutorSE executor)
ExecutorSE を使用して、新しい ConcurrentTaskExecutor を作成します。JSR-236 ManagedExecutorServiceEE を自動検出して、ManagedTaskEE アダプターを公開します。
executor - 委譲する ExecutorSEpublic final void setConcurrentExecutor(@Nullable ExecutorSE executor)
ExecutorSE を指定します。JSR-236 ManagedExecutorServiceEE を自動検出して、ManagedTaskEE アダプターを公開します。
public final ExecutorSE getConcurrentExecutor()
ExecutorSE を返します。public final void setTaskDecorator(TaskDecorator taskDecorator)
RunnableSE に適用するカスタム TaskDecorator を指定します。 このようなデコレータは、必ずしもユーザー提供の Runnable/Callable に適用されるのではなく、実際の実行コールバック(ユーザー提供のタスクのラッパーである可能性があります)に適用されることに注意してください。
主な使用例は、タスクの呼び出しの周囲に実行コンテキストを設定するか、タスク実行の監視 / 統計を提供することです。
注意 : TaskDecorator 実装での例外処理は、execute 呼び出しによる単純な Runnable 実行に制限されています。#submit 呼び出しの場合、公開された Runnable は、例外を伝搬しない FutureTask になります。例外を評価するには、キャストして Future#get を呼び出す必要がある場合があります。
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