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