私は今すぐに説明している場合が非常に難しいので、問題を説明するために単純なバージョンを作成します。RxJavaでスループットを制限
私は、ファイルのArrayList
で定義されたファイルのシーケンスを放出するObservable.from()
を持っています。これらのファイルはすべてサーバーにアップロードする必要があります。そのために私は仕事をしてObservable
を返す関数を持っています。
Observable<Response> uploadFile(File file);
私はそれが狂気を取得、このコードを実行すると、Observable.from()
は、ファイルのすべてを放出し、それらはすべてのものに、あるいは少なくともそれが処理できるスレッドの最大のためにアップロードされています。
最大2つのファイルを同時にアップロードしたいと考えています。私のためにこれを処理できる演算子はありますか?
私はバッファ、ウィンドウや他のいくつかを試してみましたが、彼らは唯一の代わりに、常に二つの平行なファイルのアップロードを持つの2つのアイテムを発するように思われます。アップロード部分に最大スレッドプールを設定しようとしましたが、私の場合は使用できません。
この権利のための簡単な演算子が必要ですか?何か不足していますか?
これは完璧ですね!私はそれを試し、あなたに知らせるでしょう。 –
窓のオペレーターがうまくいきました。どうすればそのウィンドウを動かすことができますか?今すぐウィンドウがアップロードのためにファイル1とファイル2を発行する場合、両方が終了するまで待ちます。ファイル2のアップロードが完了し、ファイル1がまだ進行中の場合、ファイル3のアップロードはすでに実行できますか? –
デフォルトの演算子では可能かどうかわからないので、独自の演算子を書く必要があります。 – Michael