循环使用的定时器使用APScheduler
pip install APScheduler -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
threading.Timer定时器只能执行一次
APScheduler中的BackgroundScheduler循环定时器,一定要确保主线程不退出
# coding=utf-8
import threading
import datetime
from apscheduler.schedulers.background import BackgroundScheduler
from queue import Queue
if __name__ == "__main__":
lock = threading.Lock()
def pnow(name):
lock.acquire()
now = datetime.datetime.now()
print("{} {}:{}:{}:{}".format(name, now.hour,
now.minute, now.second, now.microsecond))
lock.release()
pnow("start")
# 定时器3秒, 只执行一次
t = threading.Timer(3, pnow, ["tt"])
t.start()
scheduler = BackgroundScheduler()
# 每隔0.5秒执行定时器,循环执行
scheduler.add_job(pnow, trigger="interval", a