ディスパッチの使用¶
ディスパッチ は、Liferayのスケジューラーエンジン上に構築された柔軟なフレームワークであり、あらゆるタイプのロジックを実行およびスケジュールするために使用できます。 このフレームワークは、DispatchTaskExecutor
インターフェイスを使用してカスタムロジックでテンプレートを定義し、そのテンプレートを使用してコントロールパネルから タスクを作成 できます。 ディスパッチタスクが作成されると、その動作と実行 スケジュール を構成できます。
ディスパッチは、 MessageListener
インターフェイスを使用してスケジュールされたすべてのインスタンスジョブ を表示および管理するための便利なUIを提供します。
注釈
ディスパッチと MessageListener
のどちらを使用してインスタンスジョブをスケジュールするかを決定するときは、次のディスパッチの利点を考慮してください。
ディスパッチUIを使用してランタイム時にディスパッチタスクに変更を適用できるため、ディスパッチタスクのほうがMessageListener
を使用してスケジュールされたジョブよりも柔軟性があります。 MessageListener
ジョブへの変更は、ハードコーディングして再デプロイする必要があります。
ディスパッチUIは、各ディスパッチタスクの実行プロパティ(Cron式、開始/終了日、クラスターモードなど)と実行履歴のより詳細な概要も提供します。 この情報は、MessageListener
ジョブのUIでは提供されません。
新しいディスパッチタスクの追加¶
グローバルメニュー(
)を開き、 [コントロールパネル] をクリックして、 [設定] → [Dispatch] に移動します。
追加 ボタン(
)をクリックして、ディスパッチタスクに必要なテンプレートを選択します。 選択したテンプレートは、タスクの基本的なロジックを定義します。
各テンプレートは
DispatchTaskExecutor
インターフェイスの実装であり、各ディスパッチタスクは選択されたテンプレートのインスタンスです。 動作の詳細については、 ディスパッチフレームワークを理解する を参照してください。注釈
Liferay DXPはさまざまなディスパッチタスクテンプレートを提供しますが、Liferay PortalにはTalendディスパッチタスクエグゼキュータのみが含まれています。
独自のテンプレートを作成することもできます。 その方法については、 新しいディスパッチタスクエグゼキュータの作成 を参照してください。
ディスパッチタスクの名前を入力します。
(オプション)設定エディターを使用して、ランタイム時に注入されるディスパッチタスクのプロパティを定義します。
これらの設定を使用して、実行フローなどを微調整できます。
この方法で追加されたすべての設定はソフトコード化されているため、エグゼキュータのコードを編集して再デプロイしなくても、ディスパッチタスクを構成できます。
ちなみに
同じディスパッチタスクエグゼキュータの複数のインスタンスを作成し、設定エディターを使用してそれらのプロパティと動作を変更できます。
[保存] をクリックして、選択したテンプレートの新しいディスパッチタスクを作成します。
インスタンスに追加されたすべてのディスパッチタスクは、[Dispatch]ページに表示されます。 ここから、タスクをクリックして設定を編集したり、実行時にスケジュールするようにディスパッチトリガーを設定したりできます。 [今すぐ実行] をクリックして、タスクを手動で実行することもできます。 [Logs]タブには、選択したディスパッチタスクのすべての実行の記録が表示されます。
ディスパッチタスクのスケジュール¶
デフォルトでは、すべてのディスパッチタスクトリガーは作成時に無効化されています。 次の手順に従って、タスクのディスパッチトリガーを有効にし、実行時にスケジュールします。
[Dispatch]ページの [Dispatch Triggers] タブに移動し、目的のディスパッチタスクをクリックします。
[Dispatch Trigger] タブをクリックして、以下のフィールドを設定します。
[保存] をクリックします。
有効 :ディスパッチトリガーを有効または無効にします。 トリガーを有効にするには、有効なCron式を入力する必要があります。 有効な場合、ディスパッチタスクは設定されたスケジュールに従って実行されます。 無効にすると、トリガーが実行されなくなります。
Task Execution ClusterMode :ディスパッチタスクをクラスター環境内の1つのノードで実行するか、またはすべてのノードで実行するかを決定します。
Overlap Allowed :ディスパッチタスクの同時実行を有効または無効にします。 有効にすると、前の実行がまだ実行されているかどうかに関係なく、設定されたスケジュールに従って新しいタスクの実行が開始されます。
Cron式 :有効なCron式を入力して、ディスパッチタスクがいつ実行されるかを決定します。
Start Date :ディスパッチタスクの開始日を決定します。
終了日 :チェックボックスを使用して、Cronスケジュールによるディスパッチタスクの実行を終了する日を決定します。 デフォルトでは、現在の日時に設定されています。
ディスパッチタスクは、指定した日時にCron間隔に従って自動的に開始および停止するようになりました。
Talendディスパッチタスクの設定¶
Talendは、カスタムデータ統合ジョブを定義するためのオープンソースのデータ統合ソフトウェアです。 これらのジョブは、.zip
アーカイブとしてエクスポートし、Talendエグゼキュータテンプレートを使用する任意のディスパッチタスクにアップロードできます。 アップロードされると、ディスパッチタスクが実行されるたびにTalendデータ統合ジョブが実行されます。
次の手順に従って、Talend ジョブアーカイブ をディスパッチタスクにアップロードします。
Talendエグゼキュータテンプレートを使用して、インスタンスに新しいディスパッチタスクを追加します。 詳細な手順については、 Adding a New Dispatch Task を参照してください。
[Dispatch]ページの [Dispatch Triggers] タブに移動し、目的のディスパッチタスクをクリックします。
[Talend] タブをクリックします。
Talend ジョブアーカイブ のZIPファイルをアップロードします。
[保存] をクリックします。
スケジュールされたジョブの表示と管理¶
[Dispatch]ページの [Scheduled Jobs] タブには、MessageListener
インターフェイスを使用してLiferayインスタンスでスケジュールされたすべてのジョブも一覧表示されます。 ここでは、各ジョブの一般的な詳細(名前、ステータスなど)を表示したり、手動で実行を開始したり、ジョブを個別に一時停止/再開したりできます。