我必须在Java EE中编写一个批处理代码,我想问一下,如果一个批处理有2个作业或一个作业有两步,是否更好?
实施批次的两种方式有什么区别?
让我解释一下我的情况: 我必须从数据库中获取记录,然后我详细说明,更新数据库中的记录,最后我必须生成一个包含更新记录的输出文件。
答案 0 :(得分:1)
通常在Java Batch中,如果您有一个用例,其中两个相关任务将一起执行,您可能希望将它们定义为单个作业中的两个步骤。
如果作业失败或停止,批处理容器允许您在上一步中从检查点到输入数据流重新启动作业。 它还具有基于退出状态的内置条件转换(例如,继续执行步骤2而不是从步骤1中“坏”退出状态的作业失败)。
如果定义两个单独的作业,您可能最终需要自己构建相同的业务流程。
您还可以获得参数化的一些好处,例如:如果步骤1中的输出文件在步骤2中用作输入,则可以使用单个值轻松地对它们进行参数化。