Heim > Backend-Entwicklung > Python-Tutorial > Bis dass die „requests'-Bibliothek automatische Wiederholungsversuche mit exponentiellem Backoff unterstützt

Bis dass die „requests'-Bibliothek automatische Wiederholungsversuche mit exponentiellem Backoff unterstützt

Barbara Streisand
Freigeben: 2024-12-27 15:00:15
Original
294 Leute haben es durchsucht

TIL that the `requests` library supports automatic retries with exponential backoff

Sie können einen benutzerdefinierten Adapter verwenden und mehrere Wiederholungsversuche mit einem exponentiellen Backoff-Faktor für alle HTTP/HTTPS-Anfragen erzwingen. Siehe Beispiel unten:

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")
Nach dem Login kopieren

Dies gibt den folgenden Fehler zurück:

RetryError: HTTPConnectionPool(host='httpbin.org', port=80): Max retries exceeded with url: /status/500 (Caused by ResponseError('too many 500 error responses'))
Nach dem Login kopieren

Das Unglückliche ist, dass es scheinbar keine Möglichkeit gibt, festzustellen, wie oft der oben genannte Mechanismus versucht hat, es erneut zu versuchen, sondern nur dann, wenn alle Versuche erschöpft sind

Referenz

https://stackoverflow.com/a/47475019/4477547

Das obige ist der detaillierte Inhalt vonBis dass die „requests'-Bibliothek automatische Wiederholungsversuche mit exponentiellem Backoff unterstützt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage