gpt4 book ai didi

java - Spring Boot - WebFlux 在并行运行时使用 id 保留结果上下文

转载 作者:行者123 更新时间:2023-12-01 16:58:32 25 4
gpt4 key购买 nike

使用 Spring boot Web 客户端从 REST API 请求 JSON,来自服务器的响应正文存储在一个简单的 Map 中。 。对服务器的请求包含 ID,但这不包含在响应中,但需要解释响应。

我想将 id 包含在并行调用的结果中,因此而不是 List<Map> data应该是Map<UUID,Map> data或类似的。因此,来自服务器的响应与用于获取响应的 id 配对。

        List<Map> data = Flux.fromIterable(ids)
.parallel()
.runOn(Schedulers.elastic())
.flatMap(this::callAPI).sequential().collectList().block();
    private Mono<Map> callAPI(UUID id) {
return client.get().uri(uriBuilder -> uriBuilder
.path("/{id}/")
.build(id))
.retrieve().bodyToMono(Map.class);
}

最佳答案

来自@ThomasAndolf 评论

By not returning a Mono<Map> from your callApi function. Return a Map and the Id in wrapper object that you can later use to remap to your wanted structure .bodyToMono(Map.class).flatMap(map -> { return Mono.just(new Response(id, map)); }); – Thomas Andolf 22 hours ago

关于java - Spring Boot - WebFlux 在并行运行时使用 id 保留结果上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61550396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com