2010-06-28 14 views
2

Mon application Python fait beaucoup de demandes HTTP en utilisant le module urllib2. Cette application peut être utilisée sur des réseaux très peu fiables où les latences peuvent être faibles et où les paquets perdus et les timeouts réseau peuvent être très courants. Est-il possible de surcharger une partie du module urllib2 afin que chaque requête soit réessayée un nombre X de fois avant de déclencher des exceptions? Est-ce que quelqu'un a vu quelque chose comme ça? Puis-je y parvenir sans modifier l'ensemble de l'application et en créant simplement un wrapper sur le module urllib2. Ainsi, tout code effectuant des requêtes à l'aide de ce module utilise automatiquement la fonctionnalité de nouvelle tentative.Faire urllib réessayer plusieurs fois

Merci. La modification de parties d'une bibliothèque n'est jamais une bonne idée.

Répondre

0

Vous pouvez écrire des wrappers autour des méthodes que vous utilisez pour récupérer les données qui fourniraient le comportement souhaité. Ce qui serait trivial.

Vous pouvez par exemple définir des méthodes avec les mêmes noms que dans urllib2 dans votre propre module appelé myurllib2. Ensuite, il suffit de changer les importations partout où vous utilisez urllib2