Python实现定时任务的两种方式,

写脚本的时候碰到一个问题,就是需要定时去执行任务,最开始使用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一直运行,去查询上面那一堆的任务,在任务中,就可以设置不同的时间去运行

任务的顺序就是从上往下一次执行,所以每次执行的时间会有延迟

你可能感兴趣的:(python,多线程,定时任务)