আমি নতুন আরএক্স জাভা 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
গ্রাহকদের পরিচালনা ও পরিচালনার পক্ষে আমাকে কী সুবিধা দেয় ?