批处理 2 个作业和 2 个任务之间的 JavaEE 区别

Batch JavaEE difference between 2 jobs and 2 tasks

我必须在 Java EE 中编写一个批处理代码,我想问你,是一个包含 2 个作业的批处理更好,还是一个包含 2 个步骤的作业更好?

这两种实现批处理的方式有什么区别?

让我解释一下我的情况: 我必须从数据库中获取记录,然后详细说明它们,更新数据库中的记录,最后我必须生成一个包含更新记录的输出文件。

一般来说,在 Java 批处理中,如果您有两个相关任务将一起执行的用例,您可能希望将它们定义为单个作业中的两个步骤。

如果作业失败或停止,批处理容器允许您在您中断的前一步重新启动作业,从检查点到输入数据流。 它还具有基于退出状态的内置条件转换(例如,继续执行第 2 步与在第 1 步的 "bad" 退出状态下使作业失败)。

如果您定义两个单独的作业,您最终可能需要自己构建相同的编排。

您还可以通过参数化获得一些好处,例如如果您在步骤 1 中将输出文件用作步骤 2 中的输入,则可以使用单个值轻松地对它们进行参数化。