并行创建多个 API 调用,但不要使用 Spring 启动项目反应器等待任何其他响应



Zip将给定的monos聚合到一个新的Mono中,当所有给定的monos都生成了一个项时,该Mono将被实现,但我想知道,我将并行调用多个API,但没有任何依赖关系,我想逐个公开当时可用的响应。

所以请帮忙解决这个问题。我已经使用了Mono.zip,但一直在等待所有响应的到来。

您只需要Flux#merge。对出版商的订阅是热切的(所有出版商都一起订阅(:

Flux.merge(Mono.just("response1").delayElement(Duration.ofSeconds(3)),
Mono.just("response2").delayElement(Duration.ofSeconds(1)),
Mono.just("response3").delayElement(Duration.ofSeconds(2)))
.doOnNext(System.out::println)

输出为:

response2
response3
response1

最新更新