J'utilise un singleton instance de DefaultHttpClient
conjointement avec PoolingClientConnectionManager
pour effectuer un certain nombre cconsiderable (multiple par seconde) des opérations HTTP de manière multithread. Mon code est essentiellement:Timeouts avec instance singleton de DefaultHttpClient
final HttpParams httpClientParams = new BasicHttpParams();
httpClientParams.setParameter("http.protocol.version", HttpVersion.HTTP_1_1);
HttpConnectionParams.setConnectionTimeout(httpClientParams, 700);
HttpConnectionParams.setSoTimeout(httpClientParams, 700);
DefaultHttpClient client = new DefaultHttpClient(poolingClientConnectionManager, httpClientParams);
Je vais ensuite accéder à l'objet client
de plusieurs threads en parallèle. Mon problème est, que les délais d'attente ne sont pas respectés et j'ai des requêtes HTTP qui prennent beaucoup plus de temps que les 700ms spécifiés.
- Est-il sûr de définir le délai d'attente sur le client comme je le fais ci-dessus?
- Est-il sûr d'utiliser une instance singleton de
DefaultHttpClient
pour de nombreuses demandes parallèles?
Il semble que le pool de 'PoolingClientConnectionManager' était trop petit, par conséquent les requêtes ont pris beaucoup de temps. L'élargissement de la piscine a résolu le problème comme il semble. – Frederic