在进行大小的程序任务布置时,我们需要某一任务自己执行时,会选择给它设置固定的时间,这时候定时器的作用就显现出来了。在python中有很多实现定时的方法,本篇要介绍的是Timer和APScheduler,前者是一种函数,后者是框架。下面就python中定时器实现的两种方法带来详细介绍。
1.Timer
threading 模块中的Timer是一个非阻塞函数,比sleep好一点,不过依然无法固定时间执行。
from datetime import datetime from threading import Timer # 打印时间函数 def print_time(inc): print(datetime.now().strftime("%Y-%m-%d %H:%M:%S")) """ Timer的参数说明 inc:表示时间间隔 print_time:执行的函数 (inc,):传递给执行函数的参数 """ t = Timer(inc, print_time, (inc,)) t.start() print_time(2)
2.APScheduler
APScheduler是一个Python定时任务框架,使用起来十分方便。提供了基于日期,固定时间间隔及crontab类型的任务,并且可以持久化任务,并以daemon方式运行应用。
from apscheduler.schedulers.blocking import BlockingScheduler from datetime import datetime def job(): print(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) if __name__ == "__main__": scheduler = BlockingScheduler() scheduler.add_job(job, 'interval', seconds=5) scheduler.start()
以上就是python中定时器的实现方式,一般来说大家会使用timer函数多一些。当然框架的方法,大家感兴趣的话也可以多加尝试一下。