Spring批处理还是Spring boot异步方法执行?

标签 spring asynchronous spring-boot spring-batch

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

请推荐

最佳答案

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

希望对你有帮助

关于Spring批处理还是Spring boot异步方法执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36675656/

相关文章:

java - spring-data-mongodb 拦截查询并注入(inject)谓词或规范

javascript - 在 node.js/express.js 中从多个异步源构建对象

unit-testing - IntelliJ 中 Spring Boot 的 Bean 扫描

java - Spring MVC 基于 Java 的配置 - JSP 无法解析

spring - 使用 Spring security 更改密码

javascript - 将 HTML 解析为异步调用的响应

objective-c - 具有异步操作和 UI 的顺序执行流程

java - 如何在Spring boot中加载没有任何文件扩展名的配置文件

java - 为什么自动配置类的顺序有差异?

spring - 使用 Spring Boot 和 MySQL 保存图像