【发布时间】:2019-12-20 23:54:17
【问题描述】:
我想发送并行 Web 请求并同时收集结果。 然后我的方法应该返回聚合结果。
使用spring-webflux 和WebClient 听起来很简单。但是我如何才能真正汇总结果呢?
public List<Response> aggregate(List<Object> bodys) {
List<Mono> monos = bodys.stream(body -> send(body)).collect(Collectors.toList());
//TODO how can I get all results in parallel and collect it to a response list?
List<Response> = Flux.merge(monos)...???...collectList(); //pseudeocode
}
private Mono<Response> send(Object body) {
return webClient.post().syncBode(body).bodyToMono(type);
}
重要的是:如果其中一个单声道以异常结束,其他单声道仍应执行而不是中止。
【问题讨论】:
-
无论如何我都看不出这在哪里回答了我的问题。
标签: java spring spring-webflux spring-webclient