我们正在构建spring-boot应用程序。目前,Rest控制器正在按顺序调用多个Web服务。现在我们需要并行执行这些调用,并按照以下条件返回响应


聚合-等待所有并行Web服务调用完成,然后聚合响应并返回相同的响应。
无聚合-返回响应,无论哪个Web服务调用先完成,然后放弃/取消/中断其余正在进行的调用。


我进行了一些研究,找到了ExecutorService,但是不确定这是否适合这两种类型的场景,因为我是Spring-Boot的新手。

请让我知道是否有办法实现这一目标。

最佳答案

我认为ExecutorService是个好主意,您应该向Callable提交ExecutoService,以便重新获得Future

要处理情况1,您应该对所有Future进行逻辑上与isDone()方法调用的返回值,要处理情况2,您应进行逻辑OR或类似的操作。

以下是参考-CallableFuture

我不建议特定于Spring Boot,而是来自Core Java背景。这将帮助您入门,然后您可以优化方法并切换API。

希望能帮助到你 !!

10-07 18:54
查看更多