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