0

我有一个需要评估的用例,看看它是否适合 Spring Batch。我正在尝试通过分别在每个数据库上运行存储过程 (SP) 来收集来自 n 个不同数据库的数据来构建一个合并数据库,来自 n 个不同数据库的存储过程的结果被合并到一个合并数据库中,这将进一步用于下游处理。这个整合过程应该每天运行三次。我想构建一个基于 java 的整合层,它在 n 个 DB 中执行 SP 并将结果插入到单个整合 DB 中。我正在考虑编写一个多线程自定义代码来实现这一点,并查看 Spring batch 是否合适,或者是否有一种方法可以完全消除整合层本身并通过一些 DB 方法直接完成。感谢您的帮助,指点。

4

2 回答 2

1

Spring Batch 具有

org.springframework.batch.item.database.StoredProcedureItemReader 

可以用作块处理器的一部分来执行您的建议。这将允许您使用阅读器执行 SP,然后使用您自己的处理器(如果需要),然后使用

org.springframework.batch.item.database.JdbcBatchItemWriter

完成该过程。

如果您正在查看一天中有多个时段的流程,您可能还需要考虑事件驱动模型并查看 Spring Integration,它是

<int-jdbc:stored-proc-inbound-channel-adapter/>

适配器。这将允许您轮询目标数据库,执行有问题的 SP,然后转发结果以更频繁地保存在下游数据库中。

于 2013-01-03T05:23:33.000 回答
0

IMO这是一个很好的spring-batch用例。它将为瞬态错误提供缓冲,您可以将大型操作分解为更小的块。它也支持多线程作业。

于 2013-01-02T16:11:52.667 回答