【发布时间】:2021-12-09 19:11:34
【问题描述】:
我并行运行多个 REST API 请求。如果至少 2 个请求成功完成,则应终止所有其他请求。如何使用项目反应器(Spring Webflux)和 Flux 来实现这一点?
【问题讨论】:
-
你能更详细一点吗?你想取消你打电话的客户吗?问题不是很清楚。
标签: java spring spring-boot spring-webflux project-reactor
我并行运行多个 REST API 请求。如果至少 2 个请求成功完成,则应终止所有其他请求。如何使用项目反应器(Spring Webflux)和 Flux 来实现这一点?
【问题讨论】:
标签: java spring spring-boot spring-webflux project-reactor
你想要类似 Flux#take(long n)
您可以急切地订阅您的发布者,只发出 n 个元素并取消其余的。
在你的情况下,它看起来像这样:
List<Publisher<YourType>> publishers = ...;
Flux.merge(publishers)
.take(2)
.......
.......
.subscribe(...) or return the publisher to Webflux (if you are using it)
【讨论】: