インターフェース ManagedScheduledExecutorService
- すべてのスーパーインターフェース:
ExecutorSE
、ExecutorServiceSE
、ManagedExecutorService
、ScheduledExecutorServiceSE
public interface ManagedScheduledExecutorService extends ManagedExecutorService, ScheduledExecutorServiceSE
ScheduledExecutorService
SE の管理可能なバージョン。ManagedScheduledExecutorService は Java™ を継承します。SE ScheduledExecutorService は、Jakarta™ EE 環境で実行するために遅延タスクまたは定期タスクを送信するためのメソッドを提供します。ManagedScheduledExecutorService の実装は、Jakarta EE Product Provider によって提供されます。アプリケーションコンポーネントプロバイダーは、Java Naming and Directory Interface™ を使用します。(JNDI)リソース環境参照を使用して 1 つ以上の ManagedScheduledExecutorService オブジェクトのインスタンスを検索します。ManagedScheduledExecutorService インスタンスは、
Resource
アノテーションを使用してアプリケーションコンポーネントに挿入することもできます。Jakarta Concurrency 仕様には、ManagedScheduledExecutorService が実装できるいくつかの動作が記述されています。アプリケーションコンポーネントプロバイダーとデプロイヤーは、これらの要件を特定し、リソース環境参照を適切にマッピングします。
タスクは、Jakarta™ EE Product Provider によって提供される管理対象スレッドで実行され、タスクを送信したアプリケーションコンポーネントコンテキスト内で実行されます。すべてのタスクは、明示的なトランザクションなしで実行されます(アプリケーションコンポーネントのトランザクションには参加しません)。トランザクションが必要な場合は、
jakarta.transaction.UserTransaction
インスタンスを使用してください。UserTransaction インスタンスは、" java:comp/UserTransaction" という名前を使用して JNDI で使用できます。または、Resource
アノテーションを使用してjakarta.transaction.UserTransaction
オブジェクトのインジェクションをリクエストします。例:
public run() { // Begin of task InitialContext ctx = new InitialContext(); UserTransaction ut = (UserTransaction) ctx.lookup("java:comp/UserTransaction"); ut.begin(); // Perform transactional business logic ut.commit(); }
タスクはオプションで、ManagedTask
インターフェースを使用して、ライフサイクルイベントの通知を受け取るManagedTaskListener
を提供できます。非同期タスクは通常、
submit
またはschedule
メソッドのいずれかを使用して ManagedScheduledExecutorService に送信され、それぞれがFuture
インスタンスを返します。Future はタスクの結果を表し、タスクが完了したかどうかを確認したり、タスクの完了を待つためにも使用できます。タスクがキャンセルされた場合、タスクの結果は
CancellationException
例外になります。キャンセル以外の理由で開始のためにタスクを実行できない場合、結果はAbortedException
例外になります。タスクがTrigger
でスケジュールされていて、トリガーがタスクを強制的にスキップした場合、結果はSkippedException
例外になります。タスクは、
Trigger
を引数として取るschedule
メソッドと、scheduleAtFixedRate
およびscheduleWithFixedDelay
メソッドを使用して定期的に実行するようにスケジュールできます。Future
の結果は、現在スケジュールされている、または実行中のタスクのインスタンスによって表されます。タスクの将来および過去の実行は、Future によって表されません。Future
の状態は変化し、複数の結果が予想されます。例: タスクが繰り返されている場合、タスクのライフサイクルは次のようになります。
(メモ: タスクのライフサイクル管理の詳細については、ManagedTaskListener
を参照してください。)タスクのライフサイクル シーケンス 状態 アクション リスナー 次の状態 1A. なし submit() taskSubmitted サブミット済み 2A. サブミット済み run() を呼び出そう taskStarting 起動済み 3A. 起動済み run() を終了します taskDone スケジュールを変更する 1B. スケジュールを変更する taskSubmitted サブミット済み 2B. サブミット済み run() を呼び出そう taskStarting 起動済み 3B. 起動済み run() を終了します taskDone スケジュールを変更する - 導入:
- 1.0
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 ScheduledFutureSE<?>
schedule(RunnableSE command, Trigger trigger)
トリガーに基づいてタスクを作成して実行します。<V> ScheduledFutureSE<V>
schedule(CallableSE<V> callable, Trigger trigger)
トリガーに基づいてタスクを作成して実行します。インターフェース java.util.concurrent.ExecutorSE から継承されたメソッド
executeSE
インターフェース java.util.concurrent.ExecutorServiceSE から継承されたメソッド
awaitTerminationSE, invokeAllSE, invokeAllSE, invokeAnySE, invokeAnySE, isShutdown, isTerminated, shutdown, shutdownNow, submitSE, submitSE, submitSE
インターフェース jakarta.enterprise.concurrent.ManagedExecutorService から継承されたメソッド
completedFuture, completedStage, copy, copy, failedFuture, failedStage, getContextService, newIncompleteFuture, runAsync, supplyAsync
インターフェース java.util.concurrent.ScheduledExecutorServiceSE から継承されたメソッド
scheduleSE, scheduleSE, scheduleAtFixedRateSE, scheduleWithFixedDelaySE
メソッドの詳細
schedule
ScheduledFutureSE<?> schedule(RunnableSE command, Trigger trigger)
トリガーに基づいてタスクを作成して実行します。トリガーは、タスクを実行するタイミングと頻度を決定します。- パラメーター:
command
- 実行するタスク。trigger
- タスクをいつ起動するかを決定するトリガー。- 戻り値:
- タスクの保留中の完了を表す Future。その
get()
メソッドは完了時にnull
を返します。 - 例外:
RejectedExecutionExceptionSE
- タスクの実行をスケジュールできない場合。NullPointerExceptionSE
- コマンドが null の場合。
schedule
<V> ScheduledFutureSE<V> schedule(CallableSE<V> callable, Trigger trigger)
トリガーに基づいてタスクを作成して実行します。トリガーは、タスクを実行するタイミングと頻度を決定します。- 型パラメーター:
V
-Callable
の戻り値の型- パラメーター:
callable
- 実行する関数。trigger
- タスクをいつ起動するかを決定するトリガー。- 戻り値:
- 結果の抽出またはキャンセルに使用できる ScheduledFuture
- 例外:
RejectedExecutionExceptionSE
- タスクの実行をスケジュールできない場合。NullPointerExceptionSE
- callable が null の場合。