当前位置: 首页 > 知识库问答 >
问题:

SpringReactor:如何压缩两个通量,但有秩序吗?

狄兴业
2023-03-14

假设我有两个外部服务。假设我们有一个itemFoo,serviceA返回itemA,serviceB返回itemB

我想要得到的是(A,B)形式的处理程序,其中AB是同一查询项的对应对象。

Flux::zip是迄今为止我找到的最接近的东西,但它不是我想要的东西,因为订单没有promise。我在寻找像CompletableFuture::allOf这样的东西

我总是可以通过使这两个调用同步来作弊,但这会让反应式编程失去所有乐趣。或者,我可以管理一些缓存并仅在两个项目到达时发出记录,但我更喜欢无状态的东西。

共有2个答案

陆城
2023-03-14

结帐:concatWith。您可以根据需要探索其他concat变体。

注:Flux。混凝土(f1,f2)f1。concatWith(f2)基本相同。

慕容渊
2023-03-14

如果您在zip操作之前或期间使用Flux.flatMap(f1)Flux.flatMap(f2),请检查这些PL Map是否正在执行其他异步方法,如APIendpoint调用。在这种情况下,您可能需要将它们替换为Flux.flatMapSequential(f1)Flux.flatMapSequential(f2),以保持转换后通量元素的顺序。

 类似资料:
  • 问题内容: 我有2个数组: 我想要得到的结果是: 看起来很简单,但我不知道。 我希望结果是一个数组,其中两个数组中的每个元素都压缩在一起。 问题答案: 使用方法:

  • 问题内容: 我有一个熊猫数据框。我尝试将包含字符串值的两列首先连接到列表中,然后使用zip,我将列表的每个元素都用’_’连接。我的数据集如下: 我想将这两列连接到第三列,如下所示,分别用于数据框的每一行。 我已经使用下面的代码在python中成功完成了此操作,但该数据框非常大,并且需要花费很长时间才能为整个数据框运行它。我想在PySpark中做同样的事情以提高效率。我已经成功读取了spark数据框

  • 问题内容: 我有两个列表,每个列表具有相等数量的项目。这两个列表如下所示: 我正在寻找一个看起来像这样的清单: 我试图使用这样的东西: 合并两个列表列表的最佳方法是什么?提前致谢。 问题答案:

  • 问题内容: 例如我有2个数组 我怎么能 和这样我得到 ? 问题答案: 您可以使用dstack: 如果必须有元组: 对于Python 3+,您需要扩展iterator对象。请注意,这是非常低效的:

  • 问题内容: 使用Google Guava(Google Commons),是否可以将两个大小相等的列表合并为一个列表,而新列表包含两个输入列表的复合对象? 例: 和 将输出: 问题答案: 从Guava 21开始,可以通过以下方式实现: