必要时使用RxJava背压缓冲区

时间:2018-12-06 19:16:52

标签: android rx-java rx-java2 reactivex

我正在尝试使用RxJava获得特定的期望行为,但我不知道该怎么做。

我想要变长缓冲区BackPressureStrategy。

I.E。在没有背压的情况下,我的订户会收到所有单独发送的所有元素。当出现背压时,我想获取在上次致电消费者到现在之间发布的所有新元素(作为列表)。

这可能吗?

1 个答案:

答案 0 :(得分:0)

您可以使用buffer()运算符来创建项目列表。运算符的变化允许您设置最大大小或最长收集项目的时间,或者使用第二个可观察的时间触发缓冲区结束。

作为一个极端的例子,您可以创建一个可观察到的控制缓冲区的流控制。例如,使用debounce()运算符来控制何时发出缓冲区。通读RxJava examples