Короткий ответ
Таймаут — максимальное время ожидания ответа от внешнего сервиса, после которого вызов прерывается с ошибкой; без него поток/запрос может «зависнуть» на неограниченное время.
Как это работает подробнее
Клиент (HTTP-библиотека, драйвер БД) закрывает соединение и выбрасывает исключение, если ответ не получен за заданное время.
Пример кода
example.py
import httpx
response = httpx.get("https://external-service/api", timeout=httpx.Timeout(connect=2, read=5))Что использовать на практике
- Практика. Таймаут выбирают исходя из SLA зависимости и допустимой задержки для пользователя; часто разделяют connect timeout и read timeout.
Подводные камни
- Риск. Не устанавливать таймаут вообще; ставить слишком большой таймаут, из-за чего поток занят надолго и ресурсы исчерпываются при массовых зависаниях.