RxJava运算符,可动态缓冲背压元素并批量发出

问题描述 投票:1回答:1

我有一个Flowable,它发出需要由昂贵的操作处理的事件,这些操作需要元素数组:

Flowable<T> src
void expensiveOp(List<T> batch)

除了使用常量窗口之外,我还想指定一个窗口,其中包含在下游繁忙时以及仅在完全背压时填充的最大元素:

int maxSize = 1024
src.dynamicWindow(maxSize).subscribe(expensiveOp)

因此,窗口的大小既不是恒定时间也不是元素,而是依赖于背压。当订户准备好处理下一个元素时,应该刷新缓冲区。

我错过了什么重载方法?

可能的扩展名是minSize参数和重试机制,重试窗口增加。

rx-java rx-java2 reactivex
1个回答
0
投票

我最近遇到了这个问题,这是我原来的答案:https://stackoverflow.com/a/55136139/883330

快速回答。我的实现支持基于时间和计数的缓冲区的背压:qazxsw poi

© www.soinside.com 2019 - 2024. All rights reserved.