重新启动作业后,只会再次运行失败的分区。如何再次执行成功完成的工作?
再次提交作业和重新启动作业之间有区别吗?
我正在Websphere Liberty上使用IBM的JSR 352实现。
Java Batch的设计使您在重新启动作业实例时可以从上次中断的地方继续执行(在上一个失败或停止的执行中)。
因此,通常这意味着两件事:
因此,如果在初始执行时您完成了 步骤1, 然后在 步骤2 在记录#4123处失败,并且每100条记录都设置检查点,那么通常在重新启动时,您将在 步骤2 在记录#4100处开始执行。
在某些情况下,有必要执行 第一步 就重启以及,在执行前 第二步: 在工作以前失败,有一个选项来获得这种行为也是如此。
通常,经常按计划重复提交/开始工作。
根据批处理规范,每次启动作业时都会创建一个新的 JobInstance 。这时初始 JobExecution 此 JobInstance 创建。如果执行不运行到完成,实例可以重新开始,此时第二 JobExecution 为这个创建 JobInstance 。
因此,重新启动会使用前一个 JobExecution 的检查点和执行历史记录,而启动将从干净的开始开始。