Quelle: https://stackoverflow.com/a/35504626
Es wird in Intervallen der von backoff_factor x der Anzahl der Wiederholungen angegebenen Anzahl von Sekunden wiederholt. In den folgenden Fällen beträgt die erste Wiederholung 1 Sekunde und die zweite Wiederholung 2 Sekunden. Wiederholen Sie diesen Vorgang, wenn der in status_forcelist angegebene Statuscode zurückgegeben wird oder wenn das Zeitlimit überschritten wird. Die Parameter, die für Retry angegeben werden können, sind in [hier] beschrieben (http://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html#urllib3.util.retry.Retry).
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()
Wenn Sie eine Bibliothek namens retry verwenden, können Sie loslegen! Ich dachte, aber mit dieser Bibliothek scheint es, dass die Verarbeitung nicht nach Statuscode sortiert werden kann.
Recommended Posts