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

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

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

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

アクティブ: ジョブスケジューラトリガーをアクティブまたは非アクティブにします。トリガーを有効にするには、有効なcron式を入力する必要があります。ジョブスケジューラタスクがアクティブになると、設定されたスケジュールに従って実行されます。無効にすると、トリガーが実行されなくなります。
タスク実行クラスタモード: ジョブスケジューラタスクがクラスタ環境の 1 つのノードで実行されるか、すべてのノードで実行されるかを決定します。
重複を許可: ジョブスケジューラタスクの同時実行を有効または無効にします。有効にすると、前の実行がまだ実行されているかどうかに関係なく、設定されたスケジュールに従って新しいタスクの実行が開始されます。
タイムゾーン: ジョブスケジューラタスクの実行に使用するタイムゾーンを選択します。これは、Liferayインスタンスのタイムゾーンとは無関係です。このフィールドは、Liferay DXP 7.4 U35+/GA35+ 以降で利用可能です。
Cron式: ジョブスケジューラタスクが実行されるタイミングを決定する有効なcron式を入力します。
開始日: ジョブスケジューラタスクの開始日を決定します。
終了日: チェックボックスを使用して、ジョブスケジューラタスクが cron スケジュールによって実行されなくなる日時を指定します。デフォルトでは現在の日時が設定されています。
ジョブスケジューラのタスクは、指定した日時とcronの間隔に従って自動的に開始および停止するようになりました。
Talendジョブスケジューラタスクの設定
Talendは、カスタムデータ統合ジョブを定義するためのオープンソースのデータ統合ソフトウェアです。これらのジョブは .zip アーカイブとしてエクスポートされ、Talend executor テンプレートを使用するジョブ スケジューラ タスクにアップロードされます。アップロードが完了すると、Talendデータ統合ジョブはジョブスケジューラタスクが実行されるたびに実行されます。
Talend ジョブアーカイブ をジョブスケジューラタスクにアップロードするには、次の手順に従ってください。
-
Talendエグゼキュータテンプレートを使用して、インスタンスに新しいジョブスケジューラタスクを追加します。詳細な手順については、 新しいジョブスケジューラタスクの追加 を参照してください。
-
ジョブスケジューラページの ジョブスケジューラトリガー タブに移動し、目的のタスクをクリックします。
-
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 ジョブには提供されません。