ジョブスケジューラフレームワークの理解
Liferay Job Schedulerは、LiferayのScheduler Engineの上に構築された柔軟なフレームワークです。 これを使用して、Liferayインスタンス全体でカスタムロジックを含むタスクの追加、実行、およびスケジューリングができます。
ジョブスケジューラのフレームワークは、6つの要素で構成されています。
- ベースの
DispatchTaskExecutor
ディスパッチトリガー
DispatchMessageListener
DispatchTaskExecutorRegistry(ディスパッチタスクエクセキュータレジストリ
ディスパッチログ
ディスパッチコンフィギュレータ
ベースのDispatchTaskExecutor
ベースとなる DispatchTaskExecutor
インターフェースの実装は、Liferay インスタンスでジョブスケジューラタスクのテンプレートを作成します。 DispatchTaskExecutor
の各実装は、OSGiコンポーネントとして登録され、ジョブスケジューラタスクで実行されるロジックを含んでいます。 すべてのジョブスケジューラタスクは、 DispatchTaskExecutor
インターフェースを実装し、 dispatch.task.executor.name
と dispatch.task.executor.type
OSGi コンポーネントのプロパティを持つ、Java クラスのインスタンスです。 詳しくは、 新規ジョブスケジューラ タスクエクゼキュータの作成 をご覧ください。
ディスパッチトリガー
DispatchTrigger
インターフェイスは、DispatchTriggerModel
とPersistedModel
を拡張します。 このエンティティは、Liferay(Quartz)トリガーのドラフトとして機能します。 これは、DispatchTaskExecutor
とLiferayスケジューラーエンジン間の接続です。
DispatchMessageListener
DispatchMessageListener
クラスは、すべてのジョブスケジューラタスクエクゼキュータの実行を開始します。 これは、DispatchTaskExecutor
サービスクラスのスケジュールされたインスタンスごとに新しいLiferayトリガーが作成されることを意味します。 このトリガーは同じ宛先(liferay/dispatch/executor
)で作成され、LiferayトリガーをDispatchTaskExecutor
に接続するペイロード(dispatchTriggerId
)を持っています。 次に、Liferayスケジューラーエンジンは、適切なタイミングでメッセージ(dispatchTriggerId
)を使用してDispatchMessageListener
をトリガーします。 dispatchTriggerId
を使用すると、DispatchMessageListener
は、DispatchTaskExecutorRegistry
を使用してDispatchTaskExecutor
の適切なインスタンスを見つけて実行します。
DispatchTaskExecutorRegistry(ディスパッチタスクエクセキュータレジストリ
DispatchTaskExecutorRegistry
インターフェイスを実装すると、ポータル内のDispatchTaskExecutor
のすべての実装への参照が保持され、各dispatch.task.executor.type
OSGiのプロパティ値が一意であることが検証されます。
ディスパッチログ
DispatchLog
インターフェイスは、DispatchLogModel
とPersistedModel
を拡張します。 このエンティティは、ジョブスケジューラタスクの実行ログを保持する責任を負う。
ディスパッチコンフィギュレータ
DispatchConfigurator
クラスは、DispatchMessageListener
の送信先、executorService
のキューサイズとスレッドプール、RejectedExecutionHandler
など、ジョブスケジューラーフレームワークのプロパティを定義します。