Python 日程安排 "Time is freezing"

Python schedule "Time is freezing"

我正在使用 schedule 来执行与实时 datetime.datetime.now() 一起工作的功能。 但是当调用函数 datetime.datetime.now() 时,我总是得到开始时间 schedule 脚本。

示例:

import schedule
import time
import datetime


schedule.every(2).minutes.do(print, datetime.datetime.now().strftime("%d-%m-%Y %H:%M"))


while 1:
    schedule.run_pending()
    time.sleep(1)

示例结果:

28-04-2021 19:59
28-04-2021 19:59
28-04-2021 19:59
28-04-2021 19:59

有没有人知道如何在 调度程序 执行期间获得实时?

Python => 3.8
schedule => 1.1.0

这是因为 now 的值已经加载到内存中。

试试这个

    import schedule
import time
import datetime

schedule.every(2).minutes.do(print, datetime.datetime.now().strftime("%d-%m-%Y %H:%M"))


while 1:
    schedule.run_pending()
    time.sleep(1)

这是因为 now() 的 return 值保存在内存中。传递 lambda 或函数以确保它是动态计算的:

import schedule
import time
import datetime

schedule.every(2).minutes.do(
    lambda: print(datetime.datetime.now().strftime("%d-%m-%Y %H:%M"))
)

while 1:
    schedule.run_pending()
    time.sleep(1)