英文:
Reactor Flux chaining, break and continue if one succeeds
问题
使用案例是尝试连接到其中一个后端服务器,如果成功连接到其中一个服务器就足够了。有没有办法在不阻塞的情况下使用 Reactor 框架来实现这一点?
例如:
List<String> servers = ...
Flux.fromIterable(servers)
这个 Flux 应该逐个尝试连接并向服务器发送数据,直到成功连接为止。
有没有办法实现这个?
提前致谢。
英文:
Use case is to try to connect to one of the backend servers, if one succeeds then thats sufficient. Is there any way to accomplish this using Reactor framework without blocking ?
For example:
List<String> servers = ...
Flux.fromIterable(servers)
This flux Should try to connect and send data to servers one by one until if there is a success.
Is there any way to accomplish this ?
Thanks in advance.
答案1
得分: 1
以下是翻译好的内容:
正是为了这个目的,存在着 Flux#first 方法。
因此,您需要查询服务器,如果没有结果,则返回空的 flux,这样反应堆将尝试下一个查询,依此类推:
Flux.first(
Flux.fromIterable(servers)
.flatMap(this::queryServer)
)
英文:
Exactly for this purpose there is Flux#first method.
So you need to query server and return empty flux if there is no result, so reactor will try next query and so on:
Flux.first(
Flux.fromIterable(servers)
.flatMap(this::queryServer)
)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论