Spring批处理或Spring启动异步方法执行?

时间:2016-04-17 11:01:50

标签: spring asynchronous spring-boot spring-batch

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

请建议

2 个答案:

答案 0 :(得分:2)

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

我希望这可以帮到你

答案 1 :(得分:0)

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

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

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

最后,如果service不仅仅有4 spring-batchspring-batch将是更好的解决方案,因此var blue = document.querySelector('.blue'); blue.insertBefore(orange, blue.firstChild); 是专业的。