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

