Comments 20
Мне кажется, очень уместно заиспользовали все перечисленные технологии. Отличная работа!
Допустим, есть некий бот, он делает polling, тебе удобно его использовать в разработке, он периодически запрашивает новые активности с телеграм-сервера. На какие метрики стоит смотреть не со стороны пользователя, а со стороны запущенного бота? Можно смотреть на количество открытых соединений, утилизацию ресурсов, ошибки, профилировать узкие места на основе метрик. А есть ли какие-то готовые решения, которые могут помочь с оценкой производительности работы бота (как с точки зрения утилизации ресурсов сервера, так и с точки зрения общей нагрузки от всех пользователей)? Стоит ли вообще переходить от polling модели, если текущий вариант потенциально может выдержать прогнозируемый рост?
И еще интересно, на основе каких показателей можно принимать решение о масштабировании бота.
Как решаете вопрос если надо все таки обратиться к апи? Вебхук тут не поможет.
Например отправить уведомления надо.
Через те самые celery tasks идете в telegram bot api ?
Что-нибудь делали чтобы не терять сообщения, если их количество превышает лимиты телеграма? В пуллинг модели можно обойтись готовой очередью из telegram-bot-api, а с вебхуками и несколькими инстансами бота та очередь уже не поможет
В экосистеме Django такие задачи легко реализуются с помощью модуля Celery.
Celery не является модулем Django, это отдельный проект.
А как вы деплоете своих телеграм ботов в продакшн?
В последнее время начал переводить ботов на serverless, в частности тех которым достаточно webhook'ов.
В таком случае зоопарк становится намного меньше. Не нужно думать о
скейлинге
очереди задач
деплое (!)
докерах, компоузниках, процфайлах
и оркестрации всего этого
При всём при этом лямбды могут и довольно требовательные к вычислениям штуки делать, например openCV. И стоить это будет копейки
Спасибо вам за статью, и исходники на гитхабе)
Масштабируемый Продакшн-реди Телеграм бот на Django