我的情况是从4种不同的Web服务中读取数据,处理它然后将结果存储在数据库表中。此任务完成后也会发送通知。此过程的触发器是通过Web服务调用。 我应该将我的工作编写为弹簧批处理作业,还是将整个读取/处理代码写为async方法(使用@Async)从Rest Controller调用?
请建议
答案 0 :(得分:2)
在我看来,你的选择应该是@Async,因为Spring Batch是为大数据处理而设计的,并不认为是按需处理,通常你创建一个批处理,然后按计划启动批处理。这种架构的好处将是你的工作的可靠性,如果失败等情况下colud重新启动。在你的情况下,你有一个数据集成问题,我可以建议看看Spring Integration。您可以拥有一个Spring Integration管道,通过休息调用开始。
我希望这可以帮到你
答案 1 :(得分:0)
如果应该执行大量服务,spring-batch
将是您的选择。否则,我猜没有必要导入spring-batch
。
在我看来,@Async
注释是更简单的方法。
如果两种方法都可行,当然越简单越好。
最后,如果service
不仅仅有4 spring-batch
,spring-batch
将是更好的解决方案,因此var blue = document.querySelector('.blue');
blue.insertBefore(orange, blue.firstChild);
是专业的。