TGViewer
Python вопросы с собеседований Python вопросы с собеседований @python_job_interview · 24.9K subscribers
Post #1519 1.75K
Python-сервис не должен падать вслед за чужим API

Interlock - современная реализация circuit breaker для Python. Она временно блокирует обращения к нестабильному сервису, а затем аккуратно проверяет, восстановился ли он. Синхронный и асинхронный код поддерживаются одним классом.

Вместо примитивного подсчёта ошибок подряд библиотека умеет оценивать долю сбоев в скользящем окне - по числу запросов или времени. Медленные вызовы тоже можно считать ошибочными.

Для сложных сценариев есть resilience

pipeline = (
Pipeline.builder()
.fallback(lambda exc: [])
.retry(attempts=4)
.circuit_breaker(breaker)
.bulkhead(8)
.timeout(2.0)
.build()
)

Порядок стратегий задаётся явно: timeout, bulkhead, circuit breaker, повторные попытки и запасной ответ.

Также доступны интеграции с FastAPI, Litestar, HTTPX, aiohttp, Requests, Redis и OpenTelemetry. Состояние breaker можно синхронизировать между несколькими процессами, а при недоступности Redis библиотека временно возвращается к локальному состоянию.

Ядро не требует внешних зависимостей, декораторы сохраняют типы и сигнатуры функций, лицензия — MIT.

Проект молодой, поэтому проверенные годами pybreaker и circuitbreaker по-прежнему могут быть безопаснее для консервативного продакшена. Но для rate-based окон, контроля медленных запросов и составных политик отказоустойчивости Interlock выглядит интересно.

https://github.com/bagowix/interlock
  • ❤ 3
More from @python_job_interview
  1. Sep 19, 2026✔️ Кто подключился к вашей сети? NetAlertX обнаруживает устройства и уведомляет об изменен…
  2. Sep 18, 2026✔️ QuiverAI выпустила обновление генератора векторной графики Во второе поколение семейств…
  3. Sep 17, 2026📚 Бесплатная книга по математике для Computer Science и Machine Learning - более 2200 стр…
  4. Sep 15, 2026🐍 Python: как найти изменённое поле во вложенном словаре Сравнение before == after покаже…
  5. Sep 15, 2026🔥 Один из лучших обучающих курсов на StepiK по SQL SQL можно знать годами и всё равно тер…
  6. Sep 13, 2026🐍 Python: type(x) == str или isinstance(x, str)? На первый взгляд разницы почти нет. Но о…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →