所以我有这个 python 应用程序,我需要在特定日期时间安排任务。
我在想:
scheduler.add(datetime,func())
它会在指定的日期和时间准确地调用函数 func。我想要秒甚至毫秒的精度。
我搜索并找到了“调度程序”模块并尝试了它,但您只能使用 hh:mm 格式而不是 hh:mm:ss。
我希望我是清楚的
最佳答案
sched
标准库中的模块默认使用 time.time
,精度非常高*。它具有与您描述的 API 类似的 API:
import sched
from datetime import datetime
s = sched.scheduler()
s.enterabs(datetime(2018, 1, 1, 12, 20, 59, 0).timestamp(), 1, func)
s.enterabs(datetime(2018, 1, 1, 12, 20, 59, 500000).timestamp(), 1, func)
s.run()
该程序将在 2018-01-01 的 12:20:59 运行 func,然后在半秒(500000 微秒)后再次运行,然后退出。
当然,您可以使用任何方式获取时间戳,包括从字符串解析 datetime
并从那里开始工作,或者直接输入时间戳。
*:在 Linux 和 Mac 上,time.time
的精度约为 1µs。在 Windows 上,大约为 16 毫秒。保证至少为 1 秒。
关于Python如何准确安排一次性任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47367398/