我有一个Flowable,它发出需要由昂贵的操作处理的事件,这些操作需要元素数组:
Flowable<T> src
void expensiveOp(List<T> batch)
除了使用常量窗口之外,我还想指定一个窗口,其中包含在下游繁忙时以及仅在完全背压时填充的最大元素:
int maxSize = 1024
src.dynamicWindow(maxSize).subscribe(expensiveOp)
因此,窗口的大小既不是恒定时间也不是元素,而是依赖于背压。当订户准备好处理下一个元素时,应该刷新缓冲区。
我错过了什么重载方法?
可能的扩展名是minSize参数和重试机制,重试窗口增加。
我最近遇到了这个问题,这是我原来的答案:https://stackoverflow.com/a/55136139/883330
快速回答。我的实现支持基于时间和计数的缓冲区的背压:qazxsw poi