Yeni rx java 2'ye bakıyordum ve backpressureartık fikrini anladığımdan pek emin değilim ...
Sahip olduğumuz farkındayım Observableo yok backpressuredestek ve Flowableo var.
Örneğin dayalı Yani, söylüyorlar sağlar flowableile 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
}
});
Bu yaklaşık 128 değerden sonra çökecek ve bu oldukça açık ki, öğeleri almaktan daha yavaş tüketiyorum.
Ama sonra aynı şeye sahibiz 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
}
});
Bu, tüketmeye biraz gecikme koysam bile hala işe yarıyor. İş yapmak için operatörü Flowablekoyduğumu söyleyelim onBackpressureDrop, çökme gitti ama tüm değerler de gönderilmiyor.
Yani şu anda kafamda cevabını bulamadığım temel soru, neden backpressuresade kullanabileceğimi umursamalıyım , Observableyine de tüm değerleri yönetmeden buffer? Ya da belki diğer taraftan, backpressuretüketiciyi yönetme ve idare etme lehine bana ne gibi avantajlar sağlıyor ?

