Maison >développement back-end >Tutoriel Python >Jusqu'à ce que la bibliothèque « requests » prenne en charge les tentatives automatiques avec un intervalle exponentiel
Vous pouvez utiliser un adaptateur personnalisé et forcer plusieurs tentatives avec un facteur d'attente exponentiel sur toutes les requêtes HTTP/HTTPS. Voir exemple ci-dessous :
import requests from requests import adapters from urllib3.util import Retry # Create a transport adapter with a custom retry strategy. retries = Retry( total=3, backoff_factor=3, status_forcelist=[500, 502, 503, 504] ) adapter = adapters.HTTPAdapter(max_retries=retries) # Ensure adapter is used for both HTTP and HTTPS requests. session = requests.Session() session.mount('https://', adapter) session.mount('http://', adapter) # Testing the retry mechanism response = session.get("http://httpbin.org/status/500")
Cela renvoie l'erreur ci-dessous :
RetryError: HTTPConnectionPool(host='httpbin.org', port=80): Max retries exceeded with url: /status/500 (Caused by ResponseError('too many 500 error responses'))
Le malheur est qu'il ne semble pas y avoir de moyen de savoir combien de fois le mécanisme ci-dessus a tenté de réessayer, seulement lorsque toutes les tentatives ont été épuisées
https://stackoverflow.com/a/47475019/4477547
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!