このトピックでは、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型)が含まれています。
デモ
3 つのジョブプロセッサをコンパイルします。
public class TestSimpleJobA extends JavaProcessor { @Overridepublic class TestSimplepublic class TestSimpleSchedulerX コンソールでワークフローを構成します。次の図は例を示しています。

ワークフローを 1 回トリガーした後、左側のナビゲーションペインで [実行リスト] をクリックし、[プロセスインスタンスリスト] タブをクリックして、作成されたワークフローを見つけます。次に、[インスタンス ID/プロセスインスタンス図] をクリックして、[ワークフローインスタンスの詳細] ページに移動します。インスタンス JobA を右クリックし、[詳細] をクリックして、[タスクインスタンスの詳細] パネルに移動します。パネルの [基本情報] タブで、[結果またはエラーメッセージ] パラメーターの値を表示します。次の図は、インスタンス JobA の [結果またはエラーメッセージ] パラメーターの値が 1 であることを示しています。
前の手順を繰り返して、インスタンス JobB とインスタンス JobC の [結果またはエラーメッセージ] パラメーターの値をクエリします。この例では、2 つのインスタンスの [結果またはエラーメッセージ] の値はそれぞれ 2 と 3 です。SchedulerX コンソールでインスタンス JobC の印刷情報を表示します。
jobName=jobB, data=2 jobName=jobA, data=1 TestSimpleJobC sum=3