几个Spring Batch作业的JobRepository

时间:2015-07-21 14:05:20

标签: spring-batch

上下文

我们正在努力建立有关如何在大型IT服务中使用Spring Batch的标准,并且具有不同的商业利益。

我们可能会有几个属于不同业务领域的批次。我们已经知道其中一些必须从所有批次共用的表中获取一些参数(即Java和COBOL;例如日期参数)。

容量法

我们将实施的Spring Batch作业的数量很难评估。没有目标可以重写现有的COBOL批次,并且尽可能鼓励连续流程处理。

有时会出现一些关于概念证据的问题,但目前很少有结论性的工作。

我们还有一些幂等批次,但那些使用基于地图的JobRepositories。然而,一个所有批次都是幂等的世界是一种幻想。

问题

我们遇到的一个问题是找不到相关文档或建议。

在这种情况下, JobRepositories的最佳方法是什么?最好将所有这些方法存储到一个中央数据库中,还是每个JAR或业务单位都有自己的数据库?

附录

个人想法

我认为将批处理元数据放在与参数相同的位置似乎是合乎逻辑的。我认为我们不能将表添加到参数表所在的模式中,但我们可以在创建Spring Batch元数据模型的模式中查看它。

真正的问题是要知道为所有人制作一个元数据存储或制作个人元数据是否更好。

希望获得官方建议

我在Spring Batch的文档中没有找到任何建议,但如果你能提供官方建议的链接,我将非常感激。如果不可能,任何开明的建议都是好的。

2 个答案:

答案 0 :(得分:1)

没有"最好的"方法,您需要根据您的要求量身定制

pro central jobrepository

  • 你所在部门的集中主义
  • 一个调度程序(用于操作作业的系统)
    • 弱论点,更多是中心"的指标。培养
  • 一个运行作业的基础架构(例如应用程序服务器集群)
  • 中央数据库停机时间没有问题(例如维护)

contra central jobrepository

  • 你的部门没有集中主义
  • 取以上所有并反过来: - )
  • 业务数据与作业仓库不在同一个数据库中(例如DB2和Oracle)
    • 未来的停工问题......

答案 1 :(得分:1)

我同意迈克尔的所有项目并添加一个......分布式交易。虽然Spring Batch可以完成所有工作,但是如果要访问多个数据库,则需要使用分布式事务或存在数据丢失的风险。