我有一个作业池,我从中检索作业并启动它们。模式类似于:
Job job = JobPool.getJob();
job.waitForCompletion();
JobPool.release(job);
当我尝试重用作业对象时遇到问题,因为它甚至没有运行(很可能是因为它的状态是:已完成)。因此,在下面的代码片段中,第二个waitForCompletion
调用会打印作业的统计信息/计数器,并且不执行任何其他操作。
Job jobX = JobPool.getJob();
jobX.waitForCompletion();
JobPool.release(jobX);
//.......
Job jobX = JobPool.getJob();
jobX.waitForCompletion(); // <--- here the job should run, but it doesn't
当我说作业实际上没有运行时,我是对的吗,因为 hadoop 将其状态视为已完成并且它没有尝试运行它?如果是,您知道如何重置作业对象以便我可以重用它吗?