ジョブスケジューラフレームワーク
Liferayセルフホスト Liferay PaaS
ジョブ スケジューラは、ビジネス ロジックの実行とスケジュール設定を行うために Liferay のスケジューラ エンジン上に構築された柔軟なフレームワークです。 このフレームワークは、 DispatchTaskExecutor インターフェイスを使用して、コントロール パネルから タスクを作成 するために使用できるカスタム ロジックを含むテンプレートを定義します。 ジョブ スケジューラ タスクを作成した後、その動作と実行 スケジュール を構成できます。

ジョブ スケジューラ アプリケーションを表示できるのは、 管理者 のみです。
新しいジョブスケジューラタスクの追加
-
グローバル メニュー (
) を開き、 コントロール パネルをクリックして、 構成 → ジョブ スケジューラに移動します。 -
追加 (
) をクリックし、ジョブ スケジューラ タスクに必要なテンプレートを選択します。 選択したテンプレートは、タスクのデフォルトのロジックを定義します。各テンプレートは
DispatchTaskExecutorインターフェースの実装であり、各ジョブ スケジューラ タスクは選択されたテンプレートのインスタンスです。 動作の詳細については、 ジョブ スケジューラ ディスパッチ フレームワーク リファレンス を参照してください。
注Liferay DXP はさまざまなジョブ スケジューラ タスク テンプレートを提供しますが、Liferay Portal には Talend Job Scheduler Task Executor のみが含まれています。 独自のテンプレートを作成する方法については、「 ジョブ スケジューラ テンプレートの作成 」を参照してください。
-
ジョブ スケジューラ タスクの名前を入力します。
-
(オプション) 設定エディターを使用して、ジョブ スケジューラ タスクの実行時に挿入されるプロパティを定義します。
これらの設定を使用して、実行フローなどを微調整できます。
この方法で追加されたすべての設定はソフトコードされているため、Executor のコードを編集して再デプロイすることなく、ジョブ スケジューラ タスクを構成できます。
ヒント設定エディターを使用して、同じジョブ スケジューラ タスク エグゼキュータのインスタンスを複数作成し、そのプロパティと動作を変更できます。
-
選択したテンプレートの新しいジョブ スケジューラ タスクを作成するには、 [保存] をクリックします。

インスタンスに追加されたすべてのジョブ スケジューラ タスクは、ジョブ スケジューラ ページに表示されます。 ここから、タスクをクリックして設定を編集したり、ジョブ スケジューラ トリガーを構成して実行時間をスケジュールしたりできます。 [今すぐ実行]をクリックして、タスクを手動で実行することもできます。 [ログ] タブには、選択したジョブ スケジューラ タスクのすべての実行記録が表示されます。

ジョブスケジューラタスクのスケジュール
デフォルトでは、すべてのジョブ スケジューラ タスク トリガーは作成時に非アクティブになります。 タスクのジョブ スケジューラ トリガーをアクティブ化し、実行時間をスケジュールするには、次の手順に従います。
-
ジョブ スケジューラ ページの ジョブ スケジューラ トリガー タブに移動し、目的のタスクをクリックします。
-
ジョブ スケジューラ トリガー タブをクリックし、以下のフィールドを設定します。
-
[保存]をクリックします。

アクティブ: ジョブ スケジューラ トリガーをアクティブまたは非アクティブにします。 トリガーをアクティブにするには、有効な cron 式を入力する必要があります。 アクティブの場合、ジョブ スケジューラ タスクは設定されたスケジュールに従って実行されます。 無効にすると、トリガーが実行されなくなります。
タスク実行クラスター モード: ジョブ スケジューラ タスクをクラスター環境内の 1 つのノードで実行するか、すべてのノードで実行するかを決定します。
重複許可: ジョブ スケジューラ タスクの同時実行を有効または無効にします。 有効にすると、前の実行がまだ実行されているかどうかに関係なく、設定されたスケジュールに従って新しいタスクの実行が開始されます。
タイムゾーン: ジョブ スケジューラ タスクを実行するタイムゾーンを選択します。 これは、Liferay インスタンスのタイムゾーンとは無関係です。 このフィールドは、Liferay DXP 7.4 U35+/GA35+ 以降で利用できます。
Cron 式: ジョブ スケジューラ タスクがいつ実行されるかを決定する有効な cron 式を入力します。
開始日: ジョブ スケジューラ タスクの開始日を決定します。
終了日: チェックボックスを使用して、ジョブ スケジューラ タスクが cron スケジュールによって実行されなくなる日付を決定します。 デフォルトでは、現在の日時に設定されています。
ジョブ スケジューラ タスクは、指定された日付/時刻と cron 間隔に従って自動的に開始され、停止するようになりました。
Talendジョブスケジューラタスクの設定
Talendは、カスタムデータ統合ジョブを定義するためのオープンソースのデータ統合ソフトウェアです。 これらのジョブは .zip アーカイブとしてエクスポートされ、Talend executor テンプレートを使用する任意のジョブ スケジューラ タスクにアップロードされます。 アップロードされると、ジョブ スケジューラ タスクが実行されるたびに Talend データ統合ジョブが実行されます。
Talend ジョブ アーカイブ をジョブ スケジューラ タスクにアップロードするには、次の手順に従います。
-
Talend Executor テンプレートを使用して、インスタンスに新しいジョブ スケジューラ タスクを追加します。 詳細な手順については、「 新しいジョブ スケジューラ タスクの追加 」を参照してください。
-
ジョブ スケジューラ ページの ジョブ スケジューラ トリガー タブに移動し、目的のタスクをクリックします。
-
Talend タブをクリックします。
![[Talend]タブをクリックして、Talendジョブアーカイブをアップロードします](https://resources.learn.liferay.com/images/dxp/latest/en/development/traditional-java-based-development/core-frameworks/job-scheduler-framework/images/06.png)
-
Talend ジョブアーカイブのZIPファイルをアップロードします。
-
[保存]をクリックします。
スケジュールされたジョブを作成するための代替方法
また、OSGi コンポーネント を使用して SchedulerJobConfigurationを実装し、スケジュールされたジョブを作成することもできます。
以前のバージョンでは、これは MessageListener クラスを使用して実行されていました。
DispatchTaskExecutor インターフェースを使用して作成されたタスクは、ジョブ スケジューラ アプリケーション UI を介して実行時に編集できるため、より適応性が高くなります。 SchedulerJobConfiguration ジョブへの変更は、コード化、コンパイル、および再デプロイする必要があります。 ジョブ スケジューラ UI では、各タスクの実行プロパティ (cron 式、開始/終了日、クラスター モードなど) と実行履歴のより完全な概要も提供されます。 この情報は SchedulerJobConfiguration ジョブには提供されません。