Androidアプリケーションは、現在Volley
ライブラリを使用してネットワークリクエストを行い、ダウンロードした画像をNetworkImageView
で表示しています。
Retrofit
の機能をテストしたいと思います。多くのリクエスト(数千)を実行する必要があるため、並列実行について少し心配しています。 Volley
は、同時実行リクエストを4つに制限するRequestQueue
を使用して並列リクエストを処理し、他のリクエストは実行されるのを待ってキューに入れられます。 Retrofit
のドキュメントでは、同時リクエストの数を処理する方法が見つかりませんでした。そのような詳細は、このライブラリの開発者に任されていると思います。
これは正しいです?もしそうなら、Android指向の実装/ライブラリはありますか?それ以外の場合、並列リクエストを処理するためのベストプラクティスは何ですか?
Retrofitは、キューイング要求にExecutor
を使用します。
デフォルトではExecutors.newCachedThreadPool
を使用し、無制限のスレッドを許可します。通常、一度に1つか2つのリクエストしか発生しないため、これはほとんどのユースケースに当てはまります。
ただし、RestAdapter
を作成するときに独自の動作を指定することで、この動作を変更できます。 setExecutors
を呼び出し、制限されたスレッドプールを使用するエグゼキュータを渡します(必要な数に制限されます)。 2番目の引数については、 MainThreadExecutor
の新しいインスタンスを渡すだけで、メインスレッドでコールバックが発生します。