ジョブを取得して開始するジョブのプールがあります。パターンは次のようなものです。
Job job = JobPool.getJob();
job.waitForCompletion();
JobPool.release(job);
ジョブ オブジェクトを再利用しようとすると、ジョブ オブジェクトが実行されないという意味で問題が発生します (ほとんどの場合、ステータスが COMPLETED であるためです)。したがって、次のスニペットでは、2 番目の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 がステータスを完了と見なし、ジョブを実行しようとしないため、実際にはジョブが実行されないというのは正しいですか? はいの場合、再利用できるようにジョブ オブジェクトをリセットする方法を知っていますか?