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