我想知道,怎样才是正确的方式来实现我自己的冷源(发布者)使用Mutiny库。
假设有一个巨大的文件解析器,应该根据订阅者的消耗率将行作为Multi<String>项返回。新的行应该只在之前处理好以优化内存使用后读取,同时缓冲几百个项以消除使用者空闲。
我知道Multi.createFrom.emitter()工厂方法,但使用它我找不到一种方便的方法来实现背压。
穆特尼是否有一种惯用的方法来创建冷源,只有在下游请求之后才产生下一个项目,或者在本例中,我应该使用实现自己的Publisher,然后将其包装在Multi中。
发布于 2022-10-13 07:02:21
您可以使用Multi.createFrom().generator(…)。
每个请求都会调用该函数。但是您可以传递一个“状态”来记住您所在的位置,通常是一个Iterator。
这是相反的发射器方法(它不检查请求,但有一个背压战略附加到它)。
如果您需要更细粒度的背压支持,则需要实现一个Publisher。
https://stackoverflow.com/questions/73977275
复制相似问题