К примеру, у меня есть обычный async/await бот с БД и состояниями, отлично крутится на VDS за очень дешево и справляется с потоком пользователей 1500-2000 в день.
Очень часто замечаю, что многие заворачивают ботов в разные фреймворки (Flask, к примеру). Я правильно понимаю, что это делается ради HTTP сервера? Если да, то зачем он боту, какое преимущество можно получить, завернув бота в сервер, помимо того, что его можно будет разместить где-то на Heroku или PythonAnywhere. Если только из-за этого, тогда встречный вопрос - зачем заморачиваться, если на VDS за пару сотен бот спокойно будет работать и "обслуживать" средний поток людей.
Если не ради HTTP сервера, то зачем и что в конечном итоге можно получить?
Вообщем, хочется знать: есть-ли смысл от всего этого, если есть и так рабочее решение, я могу от этого в чем-то выиграть?
GavriKos, конфигурировать бота можно через сам телеграм - так, мне кажется логичнее. Просто с "аккаунта администратора" посылать нужные указания. Всего 1 хендлер и нужные команды. Опять-же - проще, чем заворачивать во фласк.
От http вы получите много готовых решений. Таких как, масштабирование, балансировку, мониторинг, следовательно стабильность, производительность, ускоренное решение проблем.
Масштабирование чего? Новый хендлер/кнопку/сообщение проще создать БЕЗ обёртки. Для мониторинга есть средства как со стороны ОС, так и в самом python.
стабильность, производительность,
Что-то мне подсказывает, что просто запущенный бот вряд-ли будет работать медленнее, чем тот-же бот завернутый во Flask.
ускоренное решение проблем.
Совсем странное утверждение. Смотрел несколько примеров ботов завернутый в http - это-же ужас какой-то. Они сильно перегружены и захламлены в плане кода. Что-бы добавить какой-то 1 элемент нужно пол кода перерыть. Не совсем похоже на "ускоренное решение проблем".
Разумеется бота, когда необходимо развернуть на нескольких серверах, по разным причинам. Из-за стоимости, географической привязки и т.п.
Для мониторинга есть средства как со стороны ОС, так и в самом python.
Разумеется, а кому то и это излишне и хватает принтов, все зависит от задачи и целей мониторинга.
Что-то мне подсказывает, что просто запущенный бот вряд-ли будет работать медленнее, чем тот-же бот завернутый во Flask.
Совсем странное утверждение. Смотрел несколько примеров ботов завернутый в http - это-же ужас какой-то. Они сильно перегружены и захламлены в плане кода. Что-бы добавить какой-то 1 элемент нужно пол кода перерыть. Не совсем похоже на "ускоренное решение проблем".
Зависит от реализации, но уверяю что по объему кода нельзя судить о производительности.
Под ускоренным решением проблем, имелось ввиду скорость восстановления работоспособности сервиса в случае проблем с сервером, ну посудите сами если один бот работает на 2-х серверах не зависимо друг от друга.
hail3b, ну так - да. Просто я не особо представляю ситуацию, когда бота нужно размещать на разных серверах. Ладно БД где-то "на стороне", но Flask-то для этого не нужен. Разве что, если использовать бота для управления каким-то ресурсо-ёмкими вычислениями, тогда логично бота закинуть на 1 сервер, вычисления на другой и HTTP для роутинга запросов.
Но в остальном - много кто заворачивает бота просто так, т.е. обычного чат-бота. Вам разве не кажется, что это как минимум странно?
Api разное используют, если без http сервера, то используете longpoll апи и сами опрашиваете сервер на доступные события.
А если используете http сервер, то это callback api, там сервер сам присылает на ваш сервер запрос, когда происходит какое либо событие. Как по мне просто отличие в api.