结合最强的内部BackpressureStrategy

时间:2018-03-27 11:16:24

标签: rx-java2

我有两个数据源(Realm)。我想使用它的combineLatest运算符。

伪代码:

Flowable.combineLatest(
  dataSource1
 .observeOn(Schedulers.io(), false, 1),
  dataSource2
 .observeOn(Schedulers.io(), false, 1),
 1
    )
.observeOn(Schedulers.computation(), false, 1)
// processing
.doOnNext(item -> Thread.sleep(1000)
.subscribe();

我对observeOn运算符中缓存的项目数量使用限制(我不需要发出旧的db缓存数据)。

是否可以从combineLatest运算符的队列中发出最后一项?在实际状态下发出所有项目。

从db发出的数据具有相对较大的大小。对于一对是没关系,但更多不是。

1 个答案:

答案 0 :(得分:1)

尝试onBackpressureLatest

Flowable.combineLatest(
    dataSource1
      .onBackpressureLatest()
      .observeOn(Schedulers.io(), false, 1),
    dataSource2
      .onBackpressureLatest()
      .observeOn(Schedulers.io(), false, 1),
    1     
)
.observeOn(Schedulers.computation(), false, 1)
.doOnNext(item -> Thread.sleep(1000)
.subscribe();