Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python如何准确地安排一次性任务_Python_Queue_Task_Scheduler_Jobs - Fatal编程技术网

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

所以我有这个python应用程序,我需要在特定的日期时间安排任务

我的想法是:

    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发行版的代码。谢谢你的帮助!