как заставить моего бота python telegram отправлять сообщения в определенное время каждый день? - PullRequest
1 голос
/ 19 сентября 2019

Я пытаюсь создать бота, который сможет уведомлять пользователей в определенное время каждый день.Как я могу заставить бота отправлять уведомления в определенное время каждый день?

Я пытался использовать цикл while, но он

@bot.callback_query_handler(func=lambda c:True)
def CalendarAnswer(c):
    Cid = c.message.chat.id
    if c.data == 'ShowTime':
        bot.send_message(Cid, timeToday)
    if c.data == 'ShowDate':
        bot.send_message(Cid, dateToday)
    if c.data == 'SetNotification':
        Ask = bot.send_message(Cid, 'Напиши мне время')
        bot.register_next_step_handler(Ask,SettingNotificationTime)
def SettingNotificationTime(message):
    NotificationTime = message.text
    bot.send_message(message.chat.id, "that's your time:" + NotificationTime)v

Я понятия не имею, как можноя решаю свою проблему

1 Ответ

0 голосов
/ 24 сентября 2019

Для регулярного планирования пакетных задач вы должны использовать встроенные функции системы:

В Windows это планировщик задач, ранее это команда с именем at:

https://www.windowscentral.com/how-create-task-using-task-scheduler-command-prompt

В Windows 10 Task Scheduler - это инструмент, который позволяет автоматически создавать и запускать практически любые задачи.Как правило, система и некоторые приложения используют планировщик для автоматизации задач обслуживания (таких как дефрагментация диска, очистка диска и обновления), но любой может его использовать.Благодаря этому вы можете запускать приложения, запускать команды и выполнять сценарии в определенный день и время или запускать задачи при возникновении определенного события.

Планировщик задач работает, сохраняя вкладкивремя и события на вашем компьютере и выполняет задачу, как только будет выполнено условие.

Если вы пытаетесь использовать планировщик задач для запуска задачи в определенное время или когда происходит событие, выМожно создать задачу как минимум двумя различными способами с использованием основных и дополнительных настроек.

С этим связана команда «at»:

https://support.microsoft.com/en-us/help/313565/how-to-use-the-at-command-to-schedule-tasks

Команда at использует следующий синтаксис:

at \\computername time /interactive | /every:date,... /next:date,... command
at \\computername id /delete | /delete/yes

В Linux это "cron":

https://opensource.com/article/17/11/how-use-cron-linux

...