Как бесконечно запускать функцию с интервалами в Python - PullRequest
0 голосов
/ 02 марта 2019

Я хочу использовать функцию каждый час, но если я вставлю свой код в файл бота, он перестанет работать:

now = datetime.datetime.now()      
today = now.day
hour = round(now.hour, 2)

while True:
    if today == now.day and (hour > 22.00 and hour < 23.00):
        bot.send_message(CHAT_ID, random.choice(welcomes))
        today += 1
    else:
        time.sleep(3600)

Как я могу это исправить и реализовать эту функцию?

1 Ответ

0 голосов
/ 02 марта 2019

Третья строка,

hour = round(now.hour, 2)

round вернет 22.00 с 22:00 ~ 22:59 и 23.00 с 23:00 ~ 23: 59.

Итак, ваше состояние ниже никогда не получалось.

(hour > 22.00 and hour < 23.00)

(22.00 не больше 22.00 и 23.00 не меньше 23.00.)

Исправлено состояние:

(hour >= 22.00 and hour < 23.00)

или

(hour > 22.00 and hour <= 23.00)

или, может быть, вы хотите

(hour == 22.00)
...