我正在尝试在Spring响应中汇总5个服务调用的结果。每个服务调用都会进行一个外部API调用并获得结果。
示例:
Mono<A> = serviceCall1(...);
Mono<B> = serviceCall2(...);
Mono<C> = serviceCall3(...);
Mono<D> = serviceCall4(...);
Mono<E> = serviceCall5(...);
我需要做的是并行进行所有这些调用,并将结果聚合到Mono中。但是,如果任何呼叫失败,我仍然应该能够确保所有呼叫都完成。有些呼叫可能会失败,有些可能会成功。
我该如何处理?
答案 0 :(得分:0)
您需要使用的是Mono中的 zip 操作。只要确保您在上述每个Monos中都有onErrorResume后备即可。 Mono.zip 然后将在收到现有Monos的所有值后运行。