在进行大小的程序任务布置时,我们需要某一任务自己执行时,会选择给它设置固定的时间,这时候定时器的作用就显现出来了。在python中有很多实现定时的方法,本篇要介绍的是Timer和APScheduler,前者是一种函数,后者是框架。下面就python中定时器实现的两种方法带来详细介绍。
1.Timer
threading 模块中的Timer是一个非阻塞函数,比sleep好一点,不过依然无法固定时间执行。
fromdatetimeimportdatetime fromthreadingimportTimer #打印时间函数 defprint_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方式运行应用。
fromapscheduler.schedulers.blockingimportBlockingScheduler fromdatetimeimportdatetime defjob(): print(datetime.now().strftime('%Y-%m-%d%H:%M:%S')) if__name__=="__main__": scheduler=BlockingScheduler() scheduler.add_job(job,'interval',seconds=5) scheduler.start()