Как стать автором
Обновить

Комментарии 14

Миллион таких же инструкций видел. У всех одна и та же проблема, куча лишнего непонятного и чего то явно не хватает.

А что непонятно? Вроде максимально дотошно описывал (поэтому и "куча лишнего")

Ну у тебя например не упоминаются сертификаты. И порт не такой как в других инструкциях.

В принципе не понятно что происходит и как.

За сертификаты отвечает fastapi если его правильно настроить. Сегодня-завтра пост выложу по этому поводу. Так по деталям смотри в моих постах

За сертификаты отвечает реверс-прокси, не надо пичкать этим ни аиограм, ни фастапи

Там же aiohttp под капотом у aiogram если вдруг темплейт нужно отдать. Также вебхуки лучше опционально делать, неудобно с ними локально, нужно ещё ngrok какой то поднимать.

Нет. Не обязательно. FastApi вполне справится. Просто попробуйте за мной повторить.

Почему-то мне кажется, что часть статьи писал чатГПТ.

Я заметил, что в больших ботах вебхуки работают хуже, чем обычный лонг поллинг. С хуками у меня периодически зависает приложение и затем, когда отвисает, начинает флудить сообщениями бота. Поэтому я для своих ботов юзаю лонг поллинг, бот никогда не виснет. И не надо мутить веб апп, ковыряться с сертификатами (тот же traefik) и тд

Однозначно лонг поллинг это проще, но оно и медленней. У меня есть боты в которых за секунду бывает 200-300 запросов. Лонг поллинг в таком случае сильно буксует. По поводу "виснет", возможно дело в настройках или сервере.

Ну не знаю, у меня стоял стандартный FasAPI через Uvicorn / Gunicorn, в 10 процессов. Все это в отдельном docker контейнере. Серты через Traefik. Для обычных веб приложений этот стек работает на ура. А вот бот не тянет.

Что медленный - не заметил. У меня в боте до 50 операций в секунду, но около 1000 пользователей. Ничего не тормозит.

Ищите проблему в своей реализации. У меня несколько миллионов активных пользователей, генерящих тысячи rps. Поллинг столько физически не тянет, а вебхуки позволяют скейлить сервис и оперативно разгребать всё, что к нему прилетает

Одна из немногих причин использования вебхуков вместо поллинга – возможность скейлить приложение. Подход с установкой и удалением вебхуков, показанный в примере с lifespan, превратит скейлинг в ад.

При старте приложения можно получить информацию об установленном вебхуке. Если настройки соответствуют, то можно смело ничего не делать. А если не соответствуют - вот тогда уже выполнять настройку. Удалять вебхук при завершении приложения крайне не рекомендую: замена контейнера сварме/кубере приведёт к гарантированному удалению вебхука при работающем приложении.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории