Python如何准确地安排一次性任务
所以我有这个python应用程序,我需要在特定的日期时间安排任务 我的想法是:Python如何准确地安排一次性任务,python,queue,task,scheduler,jobs,Python,Queue,Task,Scheduler,Jobs,所以我有这个python应用程序,我需要在特定的日期时间安排任务 我的想法是: scheduler.add(datetime,func()) 它将在指定的日期和时间调用函数func,但准确无误。我想要秒甚至毫秒的精度 我搜索并找到了“调度器”模块,并尝试了它,但您只能使用hh:mm格式,而不是hh:mm:ss 我希望我很清楚标准库中的模块默认使用时间。时间,具有相当高的精度*。它的API与您描述的API类似: import sched from datetime import date
scheduler.add(datetime,func())
它将在指定的日期和时间调用函数func,但准确无误。我想要秒甚至毫秒的精度
我搜索并找到了“调度器”模块,并尝试了它,但您只能使用hh:mm格式,而不是hh:mm:ss
我希望我很清楚标准库中的模块默认使用时间。时间
,具有相当高的精度*。它的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上,时间的精度约为1µs。在Windows上,它大约为16毫秒。保证至少为1秒。可能在
func
中,您应该在开始处添加时间。睡眠时间,以便精确到秒。另外,在传递函数时,传递func
而不是func()
,因为func()
返回一个值,func
是一个函数我必须使用s=sched.scheduler(time.time,time.sleep)来编写python发行版的代码。谢谢你的帮助!