スケジューラーの使用
スケジューラーを使用すれば、Java™ Platform, Enterprise Edition (Java EE) のアプリケーション・タスクを、 要求されたときに実行できます。また、アプリケーション開発者は、スケジューラーを使用することで、 タスクのライフサイクル中のイベント通知を受信するために、独自のステートレス・セッション Enterprise JavaBeans (EJB) コンポーネントを作成することもできます。 これにより、カスタムのロギング・ユーティリティーまたは ワークフロー・アプリケーションのプラグインが作成できるようになります。
このタスクについて
- セッション Bean メソッドの呼び出し。
- キューまたはトピックへの Java Message Service (JMS) メッセージの送信。
Stateless Session EJB コンポーネントは汎用カレンダー機能を提供するためにも使用されます。 開発者は、既存の業務カレンダーに、付属のカレンダー Bean を使用することも、独自のものを作成することもできます。 例えば、業務プロセスの 1 つがサービスの請求書を含んでいる場合があります。 スケジューラーが Stateless EJB コンポーネントを使用することで、 請求書を受信した顧客に定期的な電子メール配信をいつ送信するかをスケジュールに入れることができます。 スケジューラー・サービスはタスクのメタデータに従ってこれらのタスクを実行し、必要に応じてこれを繰り返します。
スケジューラーとは、Enterprise Java Beans のタイマー・サービスをパーシスタント・タイマー用に実行させるメカニズムです。 EJB タイマー・サービスを構成して、スケジューラーが提供する多くのフィーチャーを使用することができます。 詳しくは、『タイマー・サービスの構成』の情報を参照してください。非パーシスタント・タイマーは、スケジューラー・サービスを使用しませんが、作業マネージャーをスケジューラーの代わりに使用できます。非パーシスタント・タイマーは、作業マネージャーを直接使用します。
スケジューラー | EJB タイマー |
---|---|
Stateless Session EJB コンポーネントを実行し、JMS メッセージを送信する | ステートフル・セッション Bean 以外のすべての EJB タイプを実行します。 |
パーシスタント、トランザクション、高可用性 | パーシスタント、トランザクション、高可用性 |
タスクは 1 回のみ実行されます。 | タイマー EJB がコンテナー管理のグローバル・トランザクションを使用している場合は、1 回のみ実行されます。 |
任意の計算ルールを使用して繰り返しタスクを実行します。 | ミリ秒単位で定義した繰り返しの間隔を使用して繰り返しタスクを実行します。 |
変更した固定遅延時間計算を使用して、繰り返しの間隔 (前のタスクの開始時間に基づいた次回の実行時間) を判別します。 | 固定率の時間計算を使用して、繰り返しの間隔 (元の予定時間に基づいた次回のタスク実行時間) を判別します。 |
NotificationSink ステートレス・セッション EJB コンポーネントを使用した プログラマチックなタスク・モニター機能 | プログラマチック・タイマーのモニターはなし |
遅延タスクまたは時間依存タスクの実行の中止 | 遅延タスクまたは時間依存タスクの実行を中止します (javax.ejb.TimedObject 実装内の手動検出により実行)。 |
タスクのすべてのライフサイクルの管理 (Java Management Extensions (JMX) を介してプログラマチックに行われる、 タスクの検索、中断、再開、取り消し、パージ) | タイマーをプログラマチックに検索および取り消します。 管理者は、コマンド行ユーティリティーを使用してタイマーを検索および取り消します。 |
名前のように、限定されたデータ付きテキストの保管 (外部に保管される任意のデータ) | タイマー付きの任意のデータを保管します。 |
このタスクは、スケジューラーおよび後続のタスクをどのように管理、作成、そして、相互運用するかを示します。