我的JSR352批处理作业需要从数据库中读取,然后根据结果流到两个路径之一,每个路径都包含更多的if / else场景。我想知道写一个大批处理的单个步骤和几个小批处理的步骤之间的利弊是什么。该作业不涉及块大小大于1的块步骤,因为它需要立即保存读取结果,以防万一在进行其他逻辑之前有任何结果。这项工作将使用Control-M运行,我想知道是否使用多个较小的步骤可以提供更多的控制点。
答案 0 :(得分:3)
根据描述,我建议这些
作业失败后,重新启动时的默认行为是在上一个作业执行失败的步骤开始执行。因此,将工作分解为更多的步骤可以使您避免编写逻辑以从上次中断的地方继续执行,并且避免了重新处理,并且可以节省流程中的执行时间。
通过将离散函数封装为自己的批处理,您可以潜在地在使用同一批处理实现的其他作业中(甚至在此作业的后面)组合其他步骤。
通过将转移逻辑移到转移元素中,并提取条件流(例如<next on="RC1" to="step3"/>
等)
在作业定义XML(JSL)中,您可以在标准控制点进行更改,而不必进入Java源并找到正确的位置。
您必须确定这些好处对于您的情况是否值得。
如果您仍然可以从检查点甚至是跳过/重试中找到好处,我不会仅仅因为您使用的是1个项目块就自动排除了块步骤。 (但这可能是一个单独的问题。)