KworkБоты и автоматизация
О проекте Есть сервис, который принимает и обрабатывает вебхуки от нескольких провайдеров телефонии. Сейчас этот функционал реализован на Яндекс Функциях, но этот контур не работает. Нужно перенести логику на отдельную ВМ/контейнеры и сделать изолированный сервис, чтобы вынести в отдельный репозиторий. Часть провайдеров работает по одной схеме, часть — по другой. Нужно аккуратно перенести существующую логику, унифицировать работу с провайдерами и обеспечить стабильную асинхронную обработку. Что нужно сделать Разработать сервис приёма вебхуков от нескольких провайдеров телефонии. Сделать единую точку входа для вебхуков: быстро принимать запрос, возвращать 200 и передавать задачу в очередь на дальнейшую обработку. Реализовать фоновую обработку задач: воркеры читают сообщения из очереди, определяют провайдера, скачивают аудио, сохраняют его в S3, взаимодействуют с внутренним API и записывают результат в ClickHouse. Унифицировать работу с провайдерами: вынести специфику каждого провайдера в отдельные реализации с общим интерфейсом, убрать разрозненные условия и дублирование. Реализовать отложенные задачи по расписанию: cron-скрипты ставят задачи в очередь, воркеры их обрабатывают. Обеспечить изоляцию сервиса: никаких зависимостей, Общий код копируется внутрь нового сервиса, чтобы его можно вынести в отдельный репозиторий. Требования Опыт коммерческой разработки на Python от 3 лет. Уверенное знание FastAPI, Pydantic, asyncio. Опыт работы с Redis, ClickHouse, S3, Docker.
sk_777