我目前正在运行两个作业,因此 job2 依赖于 job1。我计划使用job1的输出并将其作为分布式缓存传递给job2。这将在 job2 中用作处理另一组数据的参考。我在完成作业配置的 2 个作业中编写了加载函数。然后我使 job2 依赖于 job1 并将其提交给 JobControl。问题是当我在 job2 的加载函数中使用分布式缓存时,该文件尚未创建,我将得到一个异常。我该如何处理?
我看不到任何可以重载而不是使用我的 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();
}