首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSR352批处理作业的设计:几个步骤比一个大的batchlet更好的设计吗?

JSR352批处理作业的设计:几个步骤比一个大的batchlet更好的设计吗?
EN

Stack Overflow用户
提问于 2018-07-28 22:09:52
回答 1查看 122关注 0票数 1

我的JSR352批处理作业需要从数据库中读取数据,然后根据结果流到两条路径中的一条,每条路径都涉及更多的if/else场景。我想知道用一个大的batchlet编写一个步骤和几个由较小的batchlet组成的步骤之间的优缺点是什么。此作业不涉及块大小大于1的块步骤,因为它需要在进入其他逻辑之前立即持久化读取结果,以防有任何读取结果。作业将使用Control-M运行,我想知道使用多个较小的步骤是否提供了更多的控制点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-29 20:56:23

从这个描述中,我建议这样做

更多细粒度步骤的好处

1.重启

作业失败后,重新启动时的默认行为是从上一个作业执行失败的步骤开始执行。因此,将作业拆分成更多步骤可以避免编写逻辑以从中断处恢复,并避免重新处理,还可以节省流程中的执行时间。

2.重用

通过将离散函数封装为其自己的batchlet,您可以潜在地在使用此相同的batchlet实现的其他作业(甚至本作业的后续部分)中组合其他步骤。

3.将逻辑提取到XML中

通过将转换逻辑移动到转换元素中,并提取条件流(例如<next on="RC1" to="step3"/>等)。在作业定义XML (JSL)中,您可以在标准控制点引入更改,而不必深入Java源代码并找到合适的位置。

最后的想法

对于你的情况,你必须决定这些好处是否值得。

再想一想

如果你仍然可以从检查点甚至跳过/重试中获得好处,我不会因为你正在使用一个1项的块而自动排除块步骤。(但这可能是一个单独的问题。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51572148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档