java - JSR 352 重新开始工作?

标签 java batch-file jsr352

当作业重新启动时,只有失败的分区会再次运行。如何再次运行已成功完成的作业?

重新提交作业和重启作业有区别吗?

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

最佳答案

Java Batch 的设计使得当您重新启动一个作业实例时,执行会从您中断的地方继续(在之前失败或停止的执行中)。

所以通常这意味着两件事:

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

因此,如果在初始执行时您完成了第 1 步,然后在第 2 步 记录 #4123 处失败,并且每 100 条记录检查一次,那么在重新启动时您通常会从记录#4100 处的step2 开始执行。

在某些情况下,有必要在重新启动时执行 step1,然后再执行之前失败的 step2,并且有一个选项可以实现此行为

经常按计划重复提交/开始一项工作是很典型的。

在批处理规范方面,每次启 Action 业时都会创建一个新的JobInstance。此时,此 JobInstance 的初始 JobExecution 已创建。如果执行未完成,实例可能会重新启动,此时会为此 JobInstance 创建第二个 JobExecution

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

关于java - JSR 352 重新开始工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36779383/

相关文章:

java - 抽象表模型

java - org.w3c.dom.Node 的并发和复用

java - 调用parse函数时如何保持"不变?

java - 从 Java 程序执行批处理文件时出错

java - 为什么在 JSR 352 的 ItemWriter 接口(interface)中有一个 checkpointInfo?任何示例实现?

java - Clojure程序的执行时间

windows - 使用批处理文件将 for 循环结果从 Jenkins 输出到文件

.net - 创建批处理文件来检查 .net Framework 3.5 sp1 是否安装

jsr352 - JSR 352 :How to collect data from the Writer of each Partition of a Partitioned Step?