【发布时间】:2020-06-19 09:48:35
【问题描述】:
我是 Flux 和 Monos 的新手,最近,在使用 findAll() 方法时,我意识到该方法能够返回部分响应,即通过 Flux ,我需要附加一个 @987654322 @ 如果我需要 CosmosDB 中的所有记录。
我想知道在现实世界中使用带有部分记录的 Flux 可能是什么用例或目的?
【问题讨论】:
我是 Flux 和 Monos 的新手,最近,在使用 findAll() 方法时,我意识到该方法能够返回部分响应,即通过 Flux ,我需要附加一个 @987654322 @ 如果我需要 CosmosDB 中的所有记录。
我想知道在现实世界中使用带有部分记录的 Flux 可能是什么用例或目的?
【问题讨论】:
响应式编程的整个思想是将处理项目的方法从拉变为推。
这意味着您可以一件一件地处理收到的物品。
想象一下,当您的物品到达时,通量和处理时间延迟 3 秒,而您的申请中收到的物品是 2 秒。如果通量将包含大约 20 个项目,那么您需要等待 60 秒来处理整个数据(20 个项目),然后您需要再等待 40 秒才能处理项目。
使用响应式方法,您可以一个一个地消耗它们,因此,您的处理在 60 秒后完成。
部分结果处理的例子可能是一些有限制的 API - 最多可以返回 2000 条记录(Salesforce 是有这个限制的平台)。因此,如果您想提取所有这些记录 - 例如。 50 000 - 你需要调用 rest API 25 次。此服务可能具有网络延迟 + 查询时间,因此部分处理会很有用。
重要!
block() 不是使用 Reactor API 的正确方式
【讨论】: