Перейти к содержанию

Практикум: Повторы gRPC, дедлайны и перезапуск потоков

grpc_flow.py содержит политику и клиентов из статьи. grpc_origin.py запускает настоящий grpc.aio-сервер с методами, передающими байты: GetStock читает, Reserve записывает действие перед ошибкой, а Export прерывается после двух элементов.

Драйвер проверяет повторы чтения, исключение записи из разрешённого списка, отдельные правила аудита, повторные действия при неограниченных повторах, общий дедлайн RPC и gRPC breaker, учитывающий попытки. Для потока проверяются результаты: [1, 2] и ошибка с выключенными повторами; [1, 2, 1, 2, 3] при явно включённом перезапуске.

Встроенные повторы gRPC отключены, поэтому ими управляет только интерцептор. Локальное соединение работает без TLS; рабочие сертификаты и protobuf-схемы в этом тесте не проверяются. Пул и сервер закрываются через контекстные менеджеры, в том числе при ошибке проверки. Docker не нужен.

Запустите из каталога docs/blog/lab/2026-09-07-safe-grpc-retries в копии репозитория. Версии зависимостей закреплены в requirements.txt.

uv run --no-project --python 3.13 --with-requirements requirements.txt python retries_lab.py

Исходный код практикума на GitHub.