Комментарии 15
Миллион таких же инструкций видел. У всех одна и та же проблема, куча лишнего непонятного и чего то явно не хватает.
А что непонятно? Вроде максимально дотошно описывал (поэтому и "куча лишнего")
Ну у тебя например не упоминаются сертификаты. И порт не такой как в других инструкциях.
В принципе не понятно что происходит и как.
Там же aiohttp под капотом у aiogram если вдруг темплейт нужно отдать. Также вебхуки лучше опционально делать, неудобно с ними локально, нужно ещё ngrok какой то поднимать.
Почему-то мне кажется, что часть статьи писал чатГПТ.
Я заметил, что в больших ботах вебхуки работают хуже, чем обычный лонг поллинг. С хуками у меня периодически зависает приложение и затем, когда отвисает, начинает флудить сообщениями бота. Поэтому я для своих ботов юзаю лонг поллинг, бот никогда не виснет. И не надо мутить веб апп, ковыряться с сертификатами (тот же traefik) и тд
Однозначно лонг поллинг это проще, но оно и медленней. У меня есть боты в которых за секунду бывает 200-300 запросов. Лонг поллинг в таком случае сильно буксует. По поводу "виснет", возможно дело в настройках или сервере.
Ну не знаю, у меня стоял стандартный FasAPI через Uvicorn / Gunicorn, в 10 процессов. Все это в отдельном docker контейнере. Серты через Traefik. Для обычных веб приложений этот стек работает на ура. А вот бот не тянет.
Что медленный - не заметил. У меня в боте до 50 операций в секунду, но около 1000 пользователей. Ничего не тормозит.
Ищите проблему в своей реализации. У меня несколько миллионов активных пользователей, генерящих тысячи rps. Поллинг столько физически не тянет, а вебхуки позволяют скейлить сервис и оперативно разгребать всё, что к нему прилетает
Одна из немногих причин использования вебхуков вместо поллинга – возможность скейлить приложение. Подход с установкой и удалением вебхуков, показанный в примере с lifespan, превратит скейлинг в ад.
При старте приложения можно получить информацию об установленном вебхуке. Если настройки соответствуют, то можно смело ничего не делать. А если не соответствуют - вот тогда уже выполнять настройку. Удалять вебхук при завершении приложения крайне не рекомендую: замена контейнера сварме/кубере приведёт к гарантированному удалению вебхука при работающем приложении.
Как просто создать aiogram 3.x бота на вебхуках (webhook)?