すべてのプロダクト
Search
ドキュメントセンター

SchedulerX:ワークフローを使用してジョブをオーケストレーションする

最終更新日:Jan 14, 2025

このトピックでは、SchedulerXコンソールで視覚化されたワークフローを使用してジョブをオーケストレーションする方法について説明します。Cron式とAPI操作がサポートされています。

使用方法に関する注意事項

  • ワークフロー内のジョブを個別にスケジュールすることはできません。ジョブはワークフローと共に、ワークフローのスケジューリングサイクルに基づいてスケジュールされます。

  • ジョブのスケジュールに使用されるワークフローには、少なくとも 2 つのジョブが含まれており、ジョブの依存関係が必要です。ジョブが 1 つしかない場合は、[タスク管理] ページでジョブをスケジュールできます。

  • ワークフローはクロスアプリケーションオーケストレーションをサポートしています。 1 つのワークフローを使用して、異なるアプリケーションのジョブをオーケストレーションできます。

制限事項

Javaジョブのみがデータ転送をサポートしています。分散Javaジョブを使用する場合は、MapReduceモデルを使用してデータを転送する必要があります。

使用方法ガイド

詳細については、「ワークフローの管理」をご参照ください。

アップストリームノードとダウンストリームノード間のデータ転送

SchedulerXは、ワークフローベースのジョブオーケストレーション機能を提供し、ワークフローのアップストリームノードとダウンストリームノード間のデータ転送をサポートしています。

実行結果を返す

/**
 *
 * @param status
 * @param result,  結果。サイズは1000バイト未満である必要があります
 * @throws Exception
 */
public ProcessResult(boolean status, String result) throws Exception;

このメソッドをProcessorインターフェースの最後に追加して、実行結果を取得できます。

説明

結果の長さはStringの長さではなく、1,000バイトを超えることはできません。結果に漢字が含まれている場合、長さが 1,000 バイトを超える可能性があります。この場合、ジョブが失敗する可能性があります。

アップストリームデータを取得する

List<JobInstanceData> upstreamDatas = JobContext.getUpstreamData();

Processorでは、この操作を呼び出して、JobContextからアップストリームデータを取得できます。アップストリームデータは、複数の上位ノードを持つ可能性のあるリストです。JobInstanceDataフィールドには、JobNameプロパティとDataプロパティ(String型)が含まれています。

デモ

  1. 3 つのジョブプロセッサをコンパイルします。

    public class TestSimpleJobA extends JavaProcessor {
        @Override
        
    public class TestSimple
    public class TestSimple
  2. SchedulerX コンソールでワークフローを構成します。次の図は例を示しています。

    image.png

  3. ワークフローを 1 回トリガーした後、左側のナビゲーションペインで [実行リスト] をクリックし、[プロセスインスタンスリスト] タブをクリックして、作成されたワークフローを見つけます。次に、[インスタンス ID/プロセスインスタンス図] をクリックして、[ワークフローインスタンスの詳細] ページに移動します。インスタンス JobA を右クリックし、[詳細] をクリックして、[タスクインスタンスの詳細] パネルに移動します。パネルの [基本情報] タブで、[結果またはエラーメッセージ] パラメーターの値を表示します。次の図は、インスタンス JobA の [結果またはエラーメッセージ] パラメーターの値が 1 であることを示しています。

    image.png前の手順を繰り返して、インスタンス JobB とインスタンス JobC の [結果またはエラーメッセージ] パラメーターの値をクエリします。この例では、2 つのインスタンスの [結果またはエラーメッセージ] の値はそれぞれ 2 と 3 です。

  4. SchedulerX コンソールでインスタンス JobC の印刷情報を表示します。

    jobName=jobB, data=2
    jobName=jobA, data=1
    TestSimpleJobC sum=3