在我们的工作中,我们经常遇到需要执行周期性的任务。在此,我们被专门汇总和从自动化方法中进行了分类以实现正时任务。这表明本文仅整理了时间任务的Python实现。
时间模块中的睡眠(SEC)功能可以使当前线程悬挂在继续执行之前等待SECS秒。简而言之,当前线程进入阻止状态。等待第二秒后,它将从等待状态变为现成状态,等待CPU安排
基于此功能的特征,我们可以通过true true + time.sleep()实现简单的定时任务。
特定代码如下:
结果:
此计时任务每5秒打印7*,并且当前时间被打印。
尽管这种实现方法是简单有效的,但它具有缺陷。主要缺点如下:
(1)您只能设置时间间隔,并且不能指定特定时间。例如,每天21:00无法正常工作。
(2)此方法是阻止功能,这意味着在此睡眠期间,无法完成程序。
螺纹模块中的计时器是一个非屏幕函数,比睡眠稍好。对计时器的最基本理解是计时器。我们可以启动多个计时器任务。这些计时器任务是异步执行的,因此没有等待执行的问题。
具体用法如下:
计时器(间隔,函数,args = [],kwargs = {})
间隔:指定时间
功能:执行的方法
args/kwargs:要执行的方法的参数
特定代码如下:
结果:
Sched模块实现了一般事件调度程序。在调度程序类中,使用延迟功能等待特定的时间执行任务。在同一时间,它支持多线程应用程序。执行每个任务后,将立即调用延迟功能,以确保可以执行其他线程。
Sched.scheduler(timeFunc,delayfunc)定义了调度事件的一般接口,他需要两个参数传递到外部。TimeFunc是一个没有参数返回时间类型号(Time.Time.Time.time.time())的函数。delayFunc是一个需要参数调用的函数,而输出兼容性与TimeFunc的函数是延迟多个时间单元(通常使用的time.sleep())的函数。
特定代码如下:
结果:
调度程序对象的主要方法:
输入(延迟,优先级,操作,参数):安排时间延迟延迟器时间单元
取消(事件):从队列删除事件。如果事件不是当前队列中的事件,则此方法将运行一个值
run():运行所有预定事件。此功能先等待,然后执行事件直到没有计划事件
apscheduler是一个计时任务框架,它基于日期,固定时间间隔和crontab类型提供任务,并且可以持续到任务中。开始和结束时间)
(2)对于基于时间间隔的执行计划(定期调度,您可以选择开始和结束时间)
(3)一个 - 时间执行任务(在设定的日期/时间运行一个任务)
特定代码如下:
结果:
该框架可以指定特定时刻的执行
这意味着该任务是在每年10月3日和12月3日在00:00到3点执行的。
