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