如何导致背压异常压缩两个Observable?

时间:2015-08-31 22:57:24

标签: rx-scala

我试图编写一个测试来查看在RxScala中使用onBackPressureDrop。

我用一个简单的拉链功能来拉动一个快速的Obserable。

奇怪的是,RxJava中的相同示例产生异常但是使用RxScala它似乎不需要onBackPressureDrop指令。

测试如下:

  @Test def testWithoutBackPressure() {
    val fast = Observable.interval(1 millis).take(100)
    val slow = Observable.interval(1000 millis).take(100)

    val res = fast.zipWith(slow)(_*_)

    res.subscribe(
      n => { println("[testWithoutBackPressure] " + n) },
      e => e.printStackTrace(),
      () => println("testWithoutBackPressure done")
    )

  }

如果由于没有背压,如何使此代码失败?

1 个答案:

答案 0 :(得分:0)

RxJava中的默认内部缓冲区大小为128。因此,您的代码不会抛出MissingBackpressureException。我还将您的代码重写为Java,但没有看到MissingBackpressureException

因此,您可以将take(100)更改为take(1024),使其投放MissingBackpressureException