Source: https://stackoverflow.com/a/35504626
Il réessayera à des intervalles du nombre de secondes spécifié par backoff_factor x le nombre de tentatives. Dans les cas suivants, la première tentative dure 1 seconde et la deuxième tentative dure 2 secondes. Réessayez lorsque le code d'état spécifié dans status_forcelist est renvoyé ou lorsqu'il expire. Les paramètres pouvant être spécifiés pour Réessayer sont décrits dans ici.
import requests
from requests.packages.urllib3.util.retry import Retry
from requests.adapters import HTTPAdapter
s = requests.Session()
retries = Retry(total=5,
backoff_factor=1,
status_forcelist=[ 500, 502, 503, 504 ])
s.mount('https://', HTTPAdapter(max_retries=retries))
s.mount('http://', HTTPAdapter(max_retries=retries))
r = s.request('GET', 'http://localhost:5000', timeout=2, headers={'Authorization': 'foobar'})
r.raise_for_status()
Si vous utilisez une bibliothèque appelée retry, vous pouvez y aller! J'ai pensé, mais avec cette bibliothèque, il semble que le traitement ne puisse pas être trié par code d'état.
Recommended Posts