小编典典

JSR 352重新开始工作吗?

java

重新启动作业后,只会再次运行失败的分区。如何再次执行成功完成的工作?

再次提交作业和重新启动作业之间有区别吗?

我正在Websphere Liberty上使用IBM的JSR 352实现。


阅读 265

收藏
2020-11-30

共1个答案

小编典典

Java Batch的设计使您在重新启动作业实例时可以从上次中断的地方继续执行(在上一个失败或停止的执行中)。

因此,通常这意味着两件事:

  1. 在作业内,您从先前失败的步骤(或作业停止的步骤)开始。
  2. 在该步骤中,首先使用批处理容器保留的检查点值定位输入光标。

因此,如果在初始执行时您完成了 步骤1, 然后在 步骤2 在记录#4123处失败,并且每100条记录都设置检查点,那么通常在重新启动时,您将在
步骤2 在记录#4100处开始执行。

在某些情况下,有必要执行 第一步 就重启以及,在执行前 第二步: 在工作以前失败,有一个选项来获得这种行为也是如此。

通常,经常按计划重复提交/开始工作。

根据批处理规范,每次启动作业时都会创建一个新的 JobInstance 。这时初始 JobExecution
JobInstance 创建。如果执行不运行到完成,实例可以重新开始,此时第二 JobExecution 为这个创建
JobInstance

因此,重新启动会使用前一个 JobExecution 的检查点和执行历史记录,而启动将从干净的开始开始。

2020-11-30