Core Frameworks
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

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

Liferay セルフホスト型 Liferay PaaS

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

ジョブスケジューラページから、ジョブスケジューラのタスクを追加および管理できます。

重要

管理者 のみがジョブスケジューラアプリケーションを表示できます。

新しいジョブスケジューラタスクを追加する

  1. グローバルメニュー (Global Menuを開き、 コントロールパネルをクリックして、 ジョブスケジューラ に移動します。

  2. をクリックして (Add Button) を追加し、ジョブスケジューラタスクに必要なテンプレートを選択します。選択されたテンプレートは、タスクのデフォルトロジックを定義します。

    各テンプレートは DispatchTaskExecutor インターフェイスの実装であり、各ジョブスケジューラタスクは選択されたテンプレートのインスタンスです。動作の詳細については、 ジョブスケジューラディスパッチフレームワークリファレンス を参照してください。

    「追加」をクリックし、タスクに適したジョブスケジューラタスク実行ツールのテンプレートを選択します。

    注記

    Liferay DXPは様々なジョブスケジューラタスクテンプレートを提供しますが、Liferay PortalにはTalendジョブスケジューラタスクエグゼキュータのみが含まれています。独自のテンプレートを作成する方法については、 ジョブスケジューラテンプレートの作成 を参照してください。

  3. ジョブスケジューラタスクの名前を入力してください。

  4. (オプション)設定エディタを使用して、ジョブスケジューラタスクの実行時に挿入されるプロパティを定義します。

    これらの設定を使用すると、実行フローなどを微調整できます。

    このようにして追加された設定はすべてソフトコーディングされているため、エグゼキュータのコードを編集して再デプロイすることなく、ジョブスケジューラのタスクを構成できます。

    ヒント

    設定エディタを使用すると、同じジョブスケジューラタスクエグゼキュータの複数のインスタンスを作成し、そのプロパティと動作を変更できます。

  5. 選択したテンプレートの新しいジョブスケジューラタスクを作成するには、 をクリックして保存 をクリックします。

    名前を入力し、必要に応じて設定エディタを使用してジョブスケジューラタスクのプロパティを定義します。

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

ジョブスケジューラページから、インスタンス内のすべてのジョブスケジューラタスクを表示、管理、構成できます。

ジョブスケジューラタスクのスケジュール設定

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

  1. ジョブスケジューラページの ジョブスケジューラトリガー タブに移動し、目的のタスクをクリックします。

  2. ジョブスケジューラトリガー タブをクリックし、以下のフィールドを設定します。

  3. をクリックして保存します。

    ジョブスケジューラタスクの実行日時を設定します。

アクティブ: ジョブスケジューラトリガーをアクティブまたは非アクティブにします。トリガーを有効にするには、有効なcron式を入力する必要があります。ジョブスケジューラタスクがアクティブになると、設定されたスケジュールに従って実行されます。無効にすると、トリガーが実行されなくなります。

タスク実行クラスタモード: ジョブスケジューラタスクがクラスタ環境の 1 つのノードで実行されるか、すべてのノードで実行されるかを決定します。

重複を許可: ジョブスケジューラタスクの同時実行を有効または無効にします。有効にすると、前の実行がまだ実行されているかどうかに関係なく、設定されたスケジュールに従って新しいタスクの実行が開始されます。

タイムゾーン: ジョブスケジューラタスクの実行に使用するタイムゾーンを選択します。これは、Liferayインスタンスのタイムゾーンとは無関係です。このフィールドは、Liferay DXP 7.4 U35+/GA35+ 以降で利用可能です。

Cron式: ジョブスケジューラタスクが実行されるタイミングを決定する有効なcron式を入力します。

開始日: ジョブスケジューラタスクの開始日を決定します。

終了日: チェックボックスを使用して、ジョブスケジューラタスクが cron スケジュールによって実行されなくなる日時を指定します。デフォルトでは現在の日時が設定されています。

ジョブスケジューラのタスクは、指定した日時とcronの間隔に従って自動的に開始および停止するようになりました。

Talendジョブスケジューラタスクの設定

Talendは、カスタムデータ統合ジョブを定義するためのオープンソースのデータ統合ソフトウェアです。これらのジョブは .zip アーカイブとしてエクスポートされ、Talend executor テンプレートを使用するジョブ スケジューラ タスクにアップロードされます。アップロードが完了すると、Talendデータ統合ジョブはジョブスケジューラタスクが実行されるたびに実行されます。

Talend ジョブアーカイブ をジョブスケジューラタスクにアップロードするには、次の手順に従ってください。

  1. Talendエグゼキュータテンプレートを使用して、インスタンスに新しいジョブスケジューラタスクを追加します。詳細な手順については、 新しいジョブスケジューラタスクの追加 を参照してください。

  2. ジョブスケジューラページの ジョブスケジューラトリガー タブに移動し、目的のタスクをクリックします。

  3. Talend タブをクリックします。

    [Talend]タブをクリックして、Talendジョブアーカイブをアップロードします

  4. Talend ジョブアーカイブ の ZIP ファイルをアップロードしてください。

  5. をクリックして保存します。

スケジュールされたジョブを作成するための代替方法

OSGi コンポーネント を使用してスケジュール ジョブを作成することもできます。このコンポーネントは SchedulerJobConfiguration を実装します。

注記

以前のバージョンでは、これは MessageListener クラス を使用して行われていました。

DispatchTaskExecutor インターフェイスを使用して作成されたタスクは、ジョブスケジューラアプリケーションの UI を介して実行時に編集できるため、より適応性があります。 SchedulerJobConfiguration ジョブへの変更は、コーディング、コンパイル、および再デプロイが必要です。ジョブスケジューラのUIでは、各タスクの実行プロパティ(cron式、開始/終了日、クラスタモードなど)と実行履歴について、より詳細な概要も提供されます。この情報は、 SchedulerJobConfiguration ジョブには提供されません。