【问题标题】:Use case of Flux and MonoFlux 和 Mono 的用例
【发布时间】:2020-06-19 09:48:35
【问题描述】:

我是 Flux 和 Monos 的新手,最近,在使用 findAll() 方法时,我意识到该方法能够返回部分响应,即通过 Flux ,我需要附加一个 @987654322 @ 如果我需要 CosmosDB 中的所有记录。

我想知道在现实世界中使用带有部分记录的 Flux 可能是什么用例或目的?

【问题讨论】:

    标签: java reactive-programming


    【解决方案1】:

    响应式编程的整个思想是将处理项目的方法从拉变为推。

    这意味着您可以一件一件地处理收到的物品。

    想象一下,当您的物品到达时,通量和处理时间延迟 3 秒,而您的申请中收到的物品是 2 秒。如果通量将包含大约 20 个项目,那么您需要等待 60 秒来处理整个数据(20 个项目),然后您需要再等待 40 秒才能处理项目。

    使用响应式方法,您可以一个一个地消耗它们,因此,您的处理在 60 秒后完成。

    部分结果处理的例子可能是一些有限制的 API - 最多可以返回 2000 条记录(Salesforce 是有这个限制的平台)。因此,如果您想提取所有这些记录 - 例如。 50 000 - 你需要调用 rest API 25 次。此服务可能具有网络延迟 + 查询时间,因此部分处理会很有用。

    重要!

    block() 不是使用 Reactor API 的正确方式

    见:How to get String from Mono<String> in reactive java

    【讨论】:

      猜你喜欢
      • 2021-09-30
      • 1970-01-01
      • 2018-12-12
      • 2021-02-09
      • 2018-06-30
      • 1970-01-01
      • 2019-05-18
      • 2021-11-23
      • 2019-01-07
      相关资源
      最近更新 更多