ジョブスケジューラフレームワークの理解

ジョブスケジューラフレームワークの理解

Liferay Job Schedulerは、LiferayのScheduler Engineの上に構築された柔軟なフレームワークです。 これを使用して、Liferayインスタンス全体でカスタムロジックを含むタスクの追加、実行、およびスケジューリングができます。

ジョブスケジューラのフレームワークは、6つの要素で構成されています。

ベースのDispatchTaskExecutor

ベースとなる DispatchTaskExecutor インターフェースの実装は、Liferay インスタンスでジョブスケジューラタスクのテンプレートを作成します。 DispatchTaskExecutor の各実装は、OSGiコンポーネントとして登録され、ジョブスケジューラタスクで実行されるロジックを含んでいます。 すべてのジョブスケジューラタスクは、 DispatchTaskExecutor インターフェースを実装し、 dispatch.task.executor.namedispatch.task.executor.type OSGi コンポーネントのプロパティを持つ、Java クラスのインスタンスです。 詳しくは、 新規ジョブスケジューラ タスクエクゼキュータの作成 をご覧ください。

ディスパッチトリガー

DispatchTrigger インターフェイスは、DispatchTriggerModelPersistedModelを拡張します。 このエンティティは、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 インターフェイスは、DispatchLogModelPersistedModelを拡張します。 このエンティティは、ジョブスケジューラタスクの実行ログを保持する責任を負う。

ディスパッチコンフィギュレータ

DispatchConfigurator クラスは、DispatchMessageListener の送信先、executorService のキューサイズとスレッドプール、RejectedExecutionHandler など、ジョブスケジューラーフレームワークのプロパティを定義します。

追加情報