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