写脚本的时候碰到一个问题,就是需要定时去执行任务,最开始使用Timer方法
def fun():
print 1
t = threading.Timer(60*10, load_stat)
t.start()
if __name__ == '__main__':
fun()
就是这样的定时任务,但是它会不停的去创建线程,cpu的资源消耗的太多,而且Python中没有体重线程停止的方法,最后重新找了一种是使用Python的轻量级定时任务调度库schedule,去实现,这样就是单独去开一个线程去执行任务,任务只在这个线程中执行,并不会去重开线程
def job1():
print 1
def job2():
print 2
if __name__ == '__main__':
schedule.every(5).seconds.do(job1)
schedule.every(5).seconds.do(job2)
while True:
schedule.run_pending()
time.sleep(1)
在while True死循环中,schedule.run_pending()是保持schedule一直运行,去查询上面那一堆的任务,在任务中,就可以设置不同的时间去运行
任务的顺序就是从上往下一次执行,所以每次执行的时间会有延迟