admin管理员组文章数量:1794759
Python 定时执行:schedule 模块
原文首发于个人站点:隐舍 微信公众号:DreamHub
参考文档:schedule.readthedocs.io/en/stable/
schedule是一个第三方轻量级的任务调度模块,可以按照秒,分,小时,日期或者自定义事件执行时间,便于执行轻量级任务。
安装 pip install schedule 模块使用 import time import schedule import datetime def job(): print(datetime.datetime.now(),'I am working...') schedule.every(10).seconds.do(job) #每10秒执行一次,如果要加参数,只需在job后面加上参数 schedule.every(10).minutes.do(job) # 每10分钟执行一次 schedule.every().hour.do(job) # 每小时执行一次 schedule.every().day.at("10:30").do(job) # 每天十点半执行 schedule.every(5).to(10).minutes.do(job) # 5-10分钟随机执行一次 schedule.every().monday.do(job) # 每周一执行 schedule.every().wednesday.at("13:15").do(job) # 每周三13点15执行 schedule.every().minute.at(":17").do(job) # 每分钟17秒时执行 while True: schedule.run_pending() time.sleep(1)PS: 函数带有参数时在schedule模块添加:
import schedule import time def job(name): print("her name is : ", name) name = xiaona schedule.every(10).minutes.do(job, name) schedule.every().hour.do(job, name) schedule.every().day.at("10:30").do(job, name) schedule.every(5).to(10).days.do(job, name) schedule.every().monday.do(job, name) schedule.every().wednesday.at("13:15").do(job, name) while True: schedule.run_pending() time.sleep(1) 局限性1.需要定时运行的函数job不应当是死循环类型的,也就是说,这个线程应该有一个执行完毕的出口。一是因为线程万一僵死,会是非常棘手的问题;二是下一次定时任务还会开启一个新的线程,执行次数多了就会演变成灾难。
2.如果schedule的时间间隔设置得比job执行的时间短,一样会线程堆积形成灾难,也就是说,我job的执行时间是1个小时,但是我定时任务设置的是5分钟一次,那就会一直堆积线程。
版权声明:本文标题:Python 定时执行:schedule 模块 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686477111a71859.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论