Задать вопрос
@muhasa

Heroku как хостинг для бота. Как влияет ограничение в 30 минут?

Здравствуйте. Нужен простейший хост за бугром чтобы слать сообщения клиентам на ТГ.
Советуют хероку, но не совсем понимаю - там в бесплатном режиме говорится что-то о 30 минутах простоя, якобы сервак уходит в сон, если нет активности.
Скрипт у меня простой, получает сообщение и шлет конкретному адресату. Само собой он работает в режиме ожидания, не deamon. Выходит, по такому ограничению, скрипт не сможет корректно работать? Или я не верно понял ограничение?
И если все так, то как остальные там ботов хостят бесплатно? Даймонов вешают на крулосуточный пулинг?
  • Вопрос задан
  • 1030 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@OlegPyatakov
pyatakov.com
Общая теория:
Если бот на Heroku уходит в сон, то он не теряет своего внутреннего состояния. Когда к спящему боту впервые обратятся по web, то он ответит, как обычно, но с задержкой, на то, чтобы проснуться из сна. В интернете пишут, что выход из сна занимает пару секунд. Я сам не проверял тайминги.

Практика:
Бесплатный тариф на Heroku можно успешно использовать для бота Телеграм, но нужно приспособиться:
  • Делать long polling на Heroku с использованием worker gyno. В документации написано, что worker dyno не уходят в сон.
  • Делать бота на webhooks. В этом случае бот при бездействии будет ходить в сон, но следующий запрос выведет его из сна. Не проверял тайминги, но предположу, что Telegram не будет обрывать совединение из-за задержки ответа в пару секунд. Да, для внешнего пользователя это запрос потребует несколько секунд на обработку из-за выхода из сна.
  • Делать бота как обычно, но по web cron каждые 25 минут посылать web запросы на какой нибудь end point бота, чтобы тот не спал.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@AlexBooolla
Если бот заснул на webhook то нужно перезапускать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы