나는 새로운 rx java 2를보고 있었고 backpressure
더 이상 아이디어를 이해하고 있는지 잘 모르겠습니다 ...
나는 우리 Observable
가 backpressure
지원 하지 않는 것과 그것을 가지고 있다는 것을 알고 Flowable
있습니다.
따라서 예를 들어 다음 flowable
과 interval
같이 말합니다 .
Flowable.interval(1, TimeUnit.MILLISECONDS, Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
// do smth
}
});
이것은 약 128 개의 값 후에 충돌 할 것이며, 항목을 얻는 것보다 더 느리게 소비하고 있음이 분명합니다.
그러나 우리는 Observable
Observable.interval(1, TimeUnit.MILLISECONDS, Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
// do smth
}
});
소비에 약간의 지연을 두어도 여전히 작동하지만 전혀 충돌하지 않습니다. Flowable
작업을 수행 하려면 onBackpressureDrop
연산자를 넣으면 충돌이 사라졌지 만 모든 값이 방출되는 것은 아닙니다.
그래서 내가 현재 내 머리 속에 답을 찾을 수없는 기본 질문은 왜 내가 backpressure
평범한 것을 Observable
관리하지 않고 여전히 모든 값을받을 수있을 때 신경을 써야 buffer
합니까? 아니면 다른 측면 backpressure
에서 소비를 관리하고 처리하는 데 어떤 이점 이 있습니까?