Я пишу бота Telegram (с python -telegram-bot ), который на основе команды циклически отправляет сообщения пользователю каждый час.
Я хочу Запустите / остановите это с помощью команд бота, добавив такие обработчики команд, как /start_cycle
и /stop_cycle
. Чтобы уточнить, это то, что я имею в виду:
def start_cycle()
# start in some way send_hourly_message()
def stop_cycle()
# stop in some way send_hourly_message()
def main():
"""Entrypoint of the bot"""
# Create updater and get dispatcher
updater = Updater(...)
dp = updater.dispatcher
# Add command handlers
dp.add_handler(CommandHandler("start_cycle", start_cycle))
dp.add_handler(CommandHandler("stop_cycle", stop_cycle))
# Start the bot until interrupt
updater.start_polling(timeout=3)
updater.idle()
Меня удивляет то, что для того, как задумана библиотека Telegram, уже существует логика на основе событий c, запущенная updater.start_polling()
и updater.idle()
. Я не нашел никакой документации / спецификаций c о том, как правильно работать с триггерными событиями, основанными на времени.
Какой, по вашему мнению, лучший способ сделать то, что я имею в виду? Я немного заглянул в asyncio , но, может быть, он слишком сложен для того, что мне действительно нужно?
Заранее спасибо за любые предложения!