java如何使用SpringWebClient从并行web请求中收集结果?
我想发送并行的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);
}
重要的是:如果一个monos异常完成,那么其他monos应该被执行,而不是被中止
# 1 楼答案
您需要在内部Monos上应用错误处理: