Как создать беспрерывно работающего телеграм бота?
Хочу написать телеграм бота, который будет запрашивать данные из БД, и делать рассылку каждый день, каждому пользователю отдельно, в зависимости от выбранных параметров. Сложность в том, что после первого нажатия кнопки /start бот должен работать беспрерывно, рассылая данные каждый день на протяжении нескольких недель, на пример.
Как в данном случае добавлять обновления или рекламу, ведь для изменения скрипта, его надо будет остановить и пользователям прийдется нажимать на кнопку /start после перезапусков?
/start нужен один раз. после этого бот может писать человеку пока тот его не заблокирует. с внутренней кухней бота это вобще никак не связано, он может и перезапускаться и переезжать и менять вид деятельности
be52, а если регулярная отправка сообщений завязана на while loop, который прервется после перезапуска и не запуститься, пока пользователь не нажмет кнопку старт ?
Kabanchik231, а если ты про состояние самого бота то он может сохранять в файл информацию кто ему что нажимал и при запуске восстанавливать
для рассылки сообщений можно вообще бота не использовать, просто дергать url типа https://telegram-api/sendmessage/userid/text
be52, спасибо! Просто идея в чем - пользователей отвечает на разные вопросы, персонализирую свой контент, в бд хранятся все эти предпочтения и часы отправки, бот асинхронно работает для каждого пользователя, отсылаю нужный контент. Но теперь я не уверен, как правильно построить архитектуру, чтобы он проверял предпочтения каждого пользователя, часы отправки сообщений и потом делал рассылку
Начните думать шире.
Подписка. Рассылка. Задачи делаются разными скриптами.
После старта в БД добавляется тид получателя.
Задание на рассылку .
Номер. Текст.
По крону в заданные промежутки времени (н-р с 9 до 11) каждую минуту запускается
скрипт.
Смотрит в таблицу пользователей у кого номер рассылки меньше текущего.
берет N штук. В течении минуты рассылает с учетом темпа к апи телеги.
помечает пользавателей высланным номером рассылки.