我遇到的情况是从 4 个不同的 Web 服务读取数据,对其进行处理,然后将结果存储在数据库表中。此任务完成后还要发送通知。此过程的触发是通过 Web 服务调用。 我应该将我的作业编写为 Spring 批处理作业,还是将整个读取/处理代码编写为从 Rest Controller 调用的异步方法(使用 @Async)?
请推荐
最佳答案
在我看来,您的选择应该是@Async,因为Spring Batch是为大数据处理而设计的,并且不认为可以按需处理,通常您创建一个批处理,然后按计划启动该批处理。这种架构的好处是工作的可靠性,在发生故障等情况下可以重新启动。对于您的情况,您遇到数据集成问题,我建议您查看 Spring Integration。您可以拥有一个通过休息调用启动的 Spring Integration 管道。
希望对你有帮助
关于Spring批处理还是Spring boot异步方法执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36675656/