Flux和Mono的用例

时间:2020-06-19 09:48:35

标签: java reactive-programming

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

我想知道具有部分记录的Flux的现实用例或目的是什么?

1 个答案:

答案 0 :(得分:1)

反应式编程的整个思想是将处理项目的方式从拉到推改变。

这意味着您可以一个接一个地处理收到的项目。

想象一下,当您的物品到达时,通量和处理时间延迟了3秒,在您收到的物品的申请中是2秒。如果助焊剂包含约20个项目,则您要等待60秒才能获取全部数据(20个项目),然后需要再等待40秒才能处理项目。

采用反应性方法,您可以一次一粒地消耗它们,因此,处理将在60秒后完成。

部分结果处理的生命示例可能是某些具有局限性的API-最多可以返回2000条记录(Salesforce是有此局限性的平台)。因此,如果您要提取所有这些记录-例如。 5万-您需要调用rest API 25次。该服务可能具有网络延迟+查询时间,因此对它进行部分处理将很有用。

重要!

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

请参阅:How to get String from Mono<String> in reactive java