2010-08-21 1 views

Répondre

2

Comment gérer les délais d'attente? Est-ce que j'emballerais juste le try try dans une déclaration while et après un certain nombre d'itérations échouées dites à l'utilisateur d'essayer plus tard?

Je ne pense pas que ce serait une bonne idée. OMI, la meilleure chose à faire est de choisir un délai qui correspond à l'heure que vous pensez que l'utilisateur devrait attendre, et ne pas utiliser une boucle. Comme le souligne @BalusC, n'importe quelle API client Http décente vous donnera un moyen de définir le délai d'expiration avant de faire la demande. Utilise le.

Le problème avec l'utilisation d'une boucle est que vous ajoutez potentiellement de la charge à un serveur déjà surchargé. Supposons que la véritable raison du délai d'attente est que le serveur essaie de traiter un trop grand nombre de requêtes en parallèle, et chaque requête prend beaucoup de temps. Si vous (le client) expulsez une demande et que vous la réessayez immédiatement, vous ajoutez probablement une charge supplémentaire ... ce qui aggrave la situation.

Les chances sont que certains utilisateurs martèlent le bouton réessayer de toute façon. Vous n'avez pas besoin de faire le martelage pour eux.

+0

En effet, chaque client HTTP décent a un paramètre de délai, même 'URLConnection' a un [' setConnectionTimeout() '] (http://download.oracle.com/javase/6/docs/api/java/net /URLConnection.html#setConnectTimeout%28int%29). Fais-en usage. – BalusC

+0

@BalusC - merci ... ajouté votre point. –

Questions connexes