現在、job2 が job1 に依存するように 2 つのジョブを実行しています。job1 の出力を使用し、それを分散キャッシュとして job2 に渡す予定です。これは、別のデータ セットを処理するために job2 で参照として使用されます。ジョブ構成を行った 2 つのジョブにロード関数を記述しました。次に、job2 を job1 に依存させ、両方を JobControl に送信します。問題は、ジョブ 2 のロード関数内で分散キャッシュを使用すると、ファイルがまだ作成されておらず、例外が発生することです。どうすればこれを処理できますか?
load() 関数を使用する代わりにオーバーロードできる initialize() などのメソッドが表示されませんでした。私は新しいAPIを使用しています。
MyTranslationBuilderDriver job1 = new MyTranslationBuilderDriver();
job1.load(args, "translator/path");
MyTranslatorDriver job2 = new MyTranslatorDriver();
job2.load(args, "path");
JobControl jbcntrl=new JobControl("jbcntrl");
ControlledJob cjob1 = new ControlledJob(job1.job, null);
ControlledJob cjob2 = new ControlledJob(job2.job, null);
cjob2.addDependingJob(cjob1);
jbcntrl.addJob(cjob2);
jbcntrl.run();
Thread thread = new Thread(jbcntrl);
thread.start();
while (!jbcntrl.allFinished()) {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
jbcntrl.stop();
}