Spring 批处理或 Spring 引导异步方法执行?

Spring batch or Spring boot async method execution?

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

求推荐

如果需要执行大量服务,spring-batch 将是选择。不然估计没必要导入spring-batch.

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

如果两种方法都能奏效,当然越简单越好。

最后如果越来越多service不只是4个,spring-batch会更好,因为spring-batch在这方面很专业

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

希望对您有所帮助