Python如何准确安排一次性任务

标签 python queue task scheduler jobs

所以我有这个 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/

相关文章:

powershell - 如何在前台运行 Windows 任务?

c# - 如何中止 .NET 任务?

git - Gradle:将变量从一个任务传递到另一个任务

python - Pandas:沿运行时定义的每行列映射函数(使用 *args)

jquery - jquery "queue"方法中的函数只能执行一次?

java - 在一个时间段内带有时间戳元素的队列

java - 为什么 PriorityQueue 不像 Queue?

python - 遍历 python 中的 numpy 数组行

python - 如何根据 Graphene/Django 上的用户类型限制模型的字段访问?

python - 按月对数据帧进行排序,并找到每个月每列中的第一个非零值