http_sync module

exception http_sync.CircuitOpenError(service, endpoint)[מקור]

Bases: RequestException

פרמטרים:
  • service (str)

  • endpoint (str)

__init__(service, endpoint)[מקור]

Initialize RequestException with request and response objects.

פרמטרים:
  • service (str)

  • endpoint (str)

http_sync.get_session(adapter_retries=True)[מקור]

Session פר-thread. שני מופעים נפרדים: עם שכבת retry של ה-adapter ובלעדיה.

שניהם נשמרים ב-thread-local ונבנים פעם אחת, כדי ששינוי ההתנהגות לא יעלה ב-connection pool נוסף בכל קריאה.

Return type:

Session

פרמטרים:

adapter_retries (bool)

http_sync.request(method, url, **kwargs)[מקור]

קריאת HTTP עם Retry, Circuit Breaker ומדדים.

אזהרה

max_attempts אינו מספר הבקשות שיישלחו בפועל. מתחת ללולאה שכאן, ה-Session מרכיב על ה-adapter urllib3.Retry משלו (REQUESTS_RETRIES, ברירת מחדל 2), שמנסה שוב על 5xx בתוך בקשה אחת. שתי השכבות מוכפלות: max_attempts=2 מייצר עד שש בקשות רשת, לא שתיים — נמדד.

כדי ש-max_attempts יהיה הסך הכולל, העבירו גם adapter_retries=False. אז שכבת ה-adapter מבוטלת והלולאה כאן היא היחידה. ה-Circuit Breaker והמדדים אינם מושפעים — הם חיים כאן ולא ב-adapter.

פרמטרים:
  • adapter_retries – False מבטל את שכבת ה-Retry של ה-adapter לקריאה הזו. ברירת המחדל True משמרת את ההתנהגות ההיסטורית.

  • method (str)

  • url (str)