Как правильно обрабатывать таймауты в Python?

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

requests: timeout=(connect_timeout, read_timeout) — timeout=5 или timeout=(3, 10). Без таймаута запрос может висеть вечно! httpx: Timeout(connect=5, read=10, write=5, pool=5). aiohttp: ClientTimeout(total=30, connect=5). asyncio: await asyncio.wait_for(coro, timeout=10) — TimeoutError. socket: s.settimeout(5). signal: signal.alarm(30) — для Unix, убивает по SIGALRM. concurrent.futures: future.result(timeout=10). Правила: всегда ставь таймаут на внешние вызовы, connect timeout < read timeout, обрабатывай TimeoutError gracefully. Для production: мониторь p99 latency, таймаут = 2-3x p99.

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

Что такое F expressions в Django?