Как реализовать retry в Python (tenacity, backoff)?

Middle
257 просмотров
AFK Offer AI

tenacity — мощная библиотека retry. @retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, max=60), retry=retry_if_exception_type(ConnectionError)). Exponential backoff: 1s, 2s, 4s, 8s... + jitter. backoff — альтернатива: @backoff.on_exception(backoff.expo, requests.RequestException, max_tries=5). urllib3.Retry: Retry(total=3, backoff_factor=0.5, status_forcelist=[500, 502, 503]). HTTPAdapter(max_retries=retry). Своя реализация: for i in range(max_retries): try: ...; break; except: time.sleep(2**i). Важно: retry только для idempotent операций и transient ошибок.

Следующий вопрос

Что такое Clean Architecture в контексте Python?