मैं नए आरएक्स जावा 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
उपभोग को संभालने और संभालने के पक्ष में मुझे क्या फायदे हों ?