【问题标题】:Efficient way to do a batch job in spring在春季进行批处理作业的有效方法
【发布时间】:2016-05-18 13:18:11
【问题描述】:

要求是:每天晚上10点查询数据库。根据数据库的结果集,调用几个第三方服务并执行一些业务操作,然后完成工作。 在spring中实现这一目标的最佳方法是什么?spring batch或spring batch集成会好吗?

【问题讨论】:

    标签: spring-integration spring-batch


    【解决方案1】:

    根据你的步骤,你最好也看看Spring Integration,然后自己决定什么是最适合你的。

    Spring Integration 提供了 JDBC Inbound Channel Adapter,它确实可以使用 Cron Trigger 轮询 DB。数据库执行的结果你真的可以给任何其他服务,例如<int-ws:outbound-gateway> 或只是通用的<service-activator>。 甚至您也可以对 DB 中的多条记录进行一些并行处理。

    不确定“然后完成工作”是什么意思,但工作会在处理完最后一条记录后自动完成。

    我认为你真的可以只使用 Spring Batch 来做类似的事情,因为确实有足够有用的组件,比如读取 DB,以及实现你自己的来调用第三方服务。 此外,您还可以通过 Repository 管理作业。

    要确定差异和范围,您应该阅读两个项目的手册并决定自己如何进一步。

    【讨论】:

    • spring-batch-integration(spring-batch 的一个子项目)提供了一个 JobLaunchingMessageHandler 可以由服务激活器调用 - 从而结合两个项目 - 然后使用 SI 轮询数据库启动一个批处理作业来处理它。
    猜你喜欢
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 2012-10-19
    • 1970-01-01
    • 2020-09-10
    • 2021-12-17
    • 1970-01-01
    相关资源
    最近更新 更多