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 集成管道。
希望对您有所帮助
我的情况是要从 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 集成管道。
希望对您有所帮助