P
python-resilience
Python resilience patterns including automatic retries, exponential backoff, timeouts, and fault-tolerant decorators. Use when adding retry logic, implementing timeouts, building fault-tolerant services, or handling transient failures.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Python resilience patterns including automatic retries, exponential backoff, timeouts, and fault-tolerant decorators. Use when adding retry logic, implementing timeouts, building fault-tolerant services, or handling transient failures.
How to use
- Zainstaluj bibliotekę tenacity, która stanowi fundament tego skilla: pip install tenacity. 2. Zaimportuj niezbędne funkcje z tenacity do swojego modułu — co najmniej retry, stop_after_attempt i wait_exponential_jitter. 3. Ozdób funkcję, która wywołuje usługę zewnętrzną, dekoratorem @retry, określając maksymalną liczbę prób (np. stop_after_attempt(3)) i strategię czekania między próbami (np. wait_exponential_jitter z parametrami initial i max). 4. Opcjonalnie dodaj retry_if_exception_type, aby precyzyjnie określić, które błędy powinny być ponawiane — na przykład błędy sieciowe, a nie błędy walidacji. 5. Przetestuj funkcję symulując błędy przejściowe (timeout, tymczasowa niedostępność) i upewnij się, że retry działa zgodnie z oczekiwaniami. 6. W produkcji monitoruj logi ponowień, aby zidentyfikować usługi, które często zawodzą, i rozważ dodanie circuit breakera dla bardziej zaawansowanej obsługi awarii.