【发布时间】:2016-05-18 13:18:11
【问题描述】:
要求是:每天晚上10点查询数据库。根据数据库的结果集,调用几个第三方服务并执行一些业务操作,然后完成工作。 在spring中实现这一目标的最佳方法是什么?spring batch或spring batch集成会好吗?
【问题讨论】:
标签: spring-integration spring-batch
要求是:每天晚上10点查询数据库。根据数据库的结果集,调用几个第三方服务并执行一些业务操作,然后完成工作。 在spring中实现这一目标的最佳方法是什么?spring batch或spring batch集成会好吗?
【问题讨论】:
标签: spring-integration spring-batch
根据你的步骤,你最好也看看Spring Integration,然后自己决定什么是最适合你的。
Spring Integration 提供了 JDBC Inbound Channel Adapter,它确实可以使用 Cron Trigger 轮询 DB。数据库执行的结果你真的可以给任何其他服务,例如<int-ws:outbound-gateway> 或只是通用的<service-activator>。
甚至您也可以对 DB 中的多条记录进行一些并行处理。
不确定“然后完成工作”是什么意思,但工作会在处理完最后一条记录后自动完成。
我认为你真的可以只使用 Spring Batch 来做类似的事情,因为确实有足够有用的组件,比如读取 DB,以及实现你自己的来调用第三方服务。 此外,您还可以通过 Repository 管理作业。
要确定差异和范围,您应该阅读两个项目的手册并决定自己如何进一步。
【讨论】:
JobLaunchingMessageHandler 可以由服务激活器调用 - 从而结合两个项目 - 然后使用 SI 轮询数据库启动一个批处理作业来处理它。