如何在Python中无间隔地无休止地运行函数

时间:2019-03-02 09:22:49

标签: python infinite-loop telegram-bot

我想每小时运行一次该功能,但是如果我将代码插入bot文件,他将停止工作:

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 :(得分:0)

第三行

hour = round(now.hour, 2)

round从22:00〜22:59返回22.00,从23:00〜23:59返回23.00

因此,您的以下情况从未得到解决。

(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)