1、sleep
from datetime import datetime
import time
# 每n秒执行一次
def timer(n):
while True:
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
time.sleep(n)
# 5s
timer(5)
2、threading模块中的Timer
from datetime import datetime
from threading import Timer
# 打印时间函数
def printTime(inc):
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
t = Timer(inc, printTime, (inc,))
t.start()
# 5s
printTime(5)
3、sched模块
import sched
import time
from datetime import datetime
# 初始化sched模块的 scheduler 类,生成调度器
# 第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。
schedule = sched.scheduler(time.time, time.sleep)
# 被周期性调度触发的函数
def printTime(inc):
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
schedule.enter(inc, 0, printTime, (inc,))
# 默认参数60s
def main(inc=60):
# enter四个参数分别为:间隔事件、优先级(用于同时间到达的两个事件同时执行时定序)、被调用触发的函数,加入调度事件
# 给该触发函数的参数(tuple形式)
schedule.enter(0, 0, printTime, (inc,))
schedule.run()
# 10s 输出一次
main(10)
4、APScheduler定时框架
APScheduler 四个组件分别为:
触发器(trigger)
作业存储(job store)
执行器(executor)
调度器(scheduler)
APScheduler 安装
pip install apscheduler
*
*
*
*
*
*
*
*