Observável vs Flowable rxJava2
Eu estive olhando para o novo rx java 2 e não tenho certeza se entendi a ideia debackpressure
não mais...
Estou ciente de que temosObservable
que não tembackpressure
suporte eFlowable
isso tem.
Então, com base no exemplo, digamos que eu tenhoflowable
cominterval
:
Flowable.interval(1, TimeUnit.MILLISECONDS, Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
// do smth
}
});
Isso falhará após cerca de 128 valores, e é bastante óbvio que estou consumindo mais devagar do que obtendo itens.
Mas então nós temos o mesmo comObservable
Observable.interval(1, TimeUnit.MILLISECONDS, Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
// do smth
}
});
Isso não trava, mesmo quando eu coloco algum atraso no consumo, ainda funciona. FazerFlowable
trabalho, digamos que eu coloqueionBackpressureDrop
operador, a falha acabou, mas nem todos os valores são emitidos.
Portanto, a pergunta básica que não encontro na minha cabeça atualmente é por que devo me preocuparbackpressure
quando eu posso usar simplesObservable
ainda recebe todos os valores sem gerenciar obuffer
? Ou talvez do outro lado, quais são as vantagensbackpressure
me dar a favor de gerenciar e manipular o consumidor?