Как сделать, чтобы Telegram-бот работал 24/7 без перерывов
Многие считают, что «мой бот должен работать постоянно», но на самом деле большинству ботов это не нужно — в этой статье объясняем, почему, как и когда это действительно требуется.
Сначала: вам правда нужен режим «всегда включён»?
На Botxona боты по умолчанию остаются активными, пока хватает памяти сервера, и отвечают мгновенно; когда ресурсы нужны, неактивный бот может быть усыплён и просыпается за несколько секунд при поступлении сообщения (подробнее). Для простого бота «вопрос-ответ», бота для приёма заказов или справочного бота пользователь почти не заметит разницы — у спящего бота первое сообщение задерживается всего на несколько секунд.
Когда «всегда включён» действительно нужен:
- Бот должен отправлять сообщения или напоминания по расписанию (например, каждый день в 09:00).
- Бот управляет процессами, чувствительными ко времени, — например, оплатами или заказами, — и даже задержка в несколько секунд неудобна.
- Бот должен поддерживать постоянное фоновое соединение с другим сервисом (например, WebSocket).
Три способа сделать бота «всегда включённым»
1. Автоматическое определение (самый простой)
Если в коде есть библиотека для работы по расписанию — APScheduler, node-cron, JobQueue, setInterval и т. п., — Botxona определит это автоматически и в режиме «Авто» сделает бота всегда включённым — никаких дополнительных настроек не нужно.
2. Явно через botxona.yaml
always_on: true
Это самый надёжный способ сделать бота всегда включённым, даже если в коде нет планировщика. Подробнее: botxona.yaml.
3. Вручную в панели
На странице бота в разделе Настройки → Режим работы можно выбрать вариант «Всегда включён» — эту настройку можно менять в любое время без изменения кода.
Тариф Business
Боты на тарифе Business всегда включены независимо от настроек — если непрерывная работа бота важна для вашего бизнеса, это самый надёжный вариант.
Что будет, если запланированная задача пропустится?
Если бот работает в режиме «Авто» или «Сон» и уснул из-за неактивности, а в это время должна была выполниться запланированная задача (например, ежедневный отчёт), — задача не выполнится, потому что бот не активен. Это ожидаемое поведение, когда вы сознательно выбрали режим «Сон»; если вы этого не хотите, переключитесь на «Всегда включён» или добавьте always_on: true в botxona.yaml.
Как узнать, что бот перестал работать?
Для важных процессов можно добавить в код бота простой механизм самопроверки (например, отправлять админу сообщение «я запустился» при каждом старте). Кроме того, резкие падения на графике DAU и активности в разделе аналитики помогают заметить проблему заранее. При crash-loop (бот падает больше 5 раз за 10 минут) система автоматически отправит вам уведомление (подробнее).
Следующий шаг
В зависимости от того, на чём написан ваш бот, смотрите инструкции по aiogram, python-telegram-bot, grammY или Telegraf.