【问题标题】:Spring batch or Spring boot async method execution?Spring批处理或Spring boot异步方法执行?
【发布时间】:2016-04-17 11:01:50
【问题描述】:

我有一种情况,需要从 4 个不同的 Web 服务读取数据,对其进行处理,然后将结果存储在数据库表中。此任务完成后也会发送通知。此过程的触发器是通过 Web 服务调用。 我应该将我的工作编写为 Spring 批处理作业还是将整个读取/处理代码编写为从 Rest Controller 调用的异步方法(使用 @Async)?

请推荐

【问题讨论】:

  • 如果 4 服务作为计划作业触发,则需要 spring 批处理。如果 4 个服务调用由您的应用程序的用户触发,则需要使用 Rest Controller。
  • 答案应该很明显,具体取决于您的用例

标签: spring asynchronous spring-boot spring-batch


【解决方案1】:

在我看来,您的选择应该是 @Async,因为 Spring Batch 是为大数据处理而设计的,它不被认为是按需处理的,通常您创建一个批处理,然后按计划启动批处理。这种架构的好处将是你的工作的可靠性,在失败的情况下重新启动等等。在您的情况下,您有数据集成问题,我建议您查看 Spring Integration。您可以拥有一个通过休息调用启动的 Spring Integration 管道。

希望对你有帮助

【讨论】:

    【解决方案2】:

    如果需要执行大量的服务,spring-batch 将是选择。否则,我想没有必要导入spring-batch

    在我看来,@Async 注释是更简单的方法。

    如果两种方法都可以,当然越简单越好。

    最后,如果service不仅仅是4个,spring-batch会是更好的解决方案,因为spring-batch在这方面很专业。

    【讨论】:

      猜你喜欢
      • 2015-12-10
      • 1970-01-01
      • 2019-12-04
      • 2016-10-11
      • 1970-01-01
      • 2018-10-14
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      相关资源
      最近更新 更多