मैं नए rx जावा 2 को देखकर किया गया है और मैं काफी यकीन है कि मैं अब और backpressure
के विचार को समझ में नहीं हूँ ...प्रत्यक्ष बनाम flowable rxJava2
मुझे पता है कि हम 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 मूल्यों के बाद दुर्घटना करने जा रहा है, और thats बहुत स्पष्ट मैं हो रही वस्तुओं की तुलना में धीमी लेने वाली हूँ।
लेकिन फिर हम एक ही 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
क्या फायदे उपभोग करने के प्रबंधन और प्रबंधन के पक्ष में देते हैं?
चूंकि यह आया है [दूसरे प्रश्न में] (http://stackoverflow.com/questions/42525623/rxjava-2-x-should-i-use-flowable-or-single - अपूर्ण) - क्या यह सही है कि 'होवर',' सिंगल 'और' कॉम्प्लेटेबल 'जैसे अधिक प्रतिबंधित प्रकार * फ्लोवेबल' के बजाय * हमेशा * उपयोग किए जा सकते हैं जब वे अर्थात् उपयुक्त हैं? –