spring - 在 Spring 反应式中聚合单声道
问题描述
我正在尝试汇总 Spring 反应式中 5 个服务调用的结果。每个服务调用都会进行外部 API 调用并获得结果。
例子:
Mono<A> = serviceCall1(...);
Mono<B> = serviceCall2(...);
Mono<C> = serviceCall3(...);
Mono<D> = serviceCall4(...);
Mono<E> = serviceCall5(...);
我需要做的是并行进行所有这些调用,将结果聚合到 Mono 中。但是,如果任何呼叫失败,我仍然应该能够确保所有呼叫都完成。有些调用可能会失败,有些可能会成功。
我该怎么办?
解决方案
您只需要使用Mono中的zip操作即可。只需确保您在上述每个 Monos 中都有 onErrorResume 后备。当接收到现有 Monos 的所有值时, Mono.zip将运行。
推荐阅读
- javascript - 为什么点击时没有播放音频?
- java - 打印数字 3 或 6 从 1 到 1000.like 3 ,6,13,16.....996 的数字,
- bash - 不要与 shell 本身共享从 shell 启动的进程的标准输入
- video - FFmpeg drawtext=enable'between(t,0,5)' 不工作
- xml - 命名空间 xml 文件内部元素中的属性
- python - 如何使用 python xml.etree.ElementTree 验证 xpath
- geopy - geopy.exc.GeocoderInsufficientPrivileges:HTTP 错误 403:禁止
- html - 使用 for 循环为选择器输入创建选项?
- google-analytics - Google Analytics 如何检测浏览器/版本?
- python - scipy.optimize.linprog 不支持内部点吗?