
schedule模块定时执行任务
一、基本使用 import schedule import time def job(): print("I'm working...") schedule.every(10).minutes.do(job) schedule.every().hour.do(job) schedule.every().day.at("10:30").do(job) schedule.every(5).to(10).days.do(job) schedule.every().monday.do(job) schedule.every().wednesday.at("13:15").do(job) while True: schedule.run_pending() time.sleep(1)
上面的意思就是:
每隔十分钟执行一次任务
每隔一小时执行一次任务
每天的10:30执行一次任务
每隔5到10天执行一次任务
每周一的这个时候执行一次任务
每周三13:15执行一次任务
run_pending:运行所有可以运行的任务
当然,如果函数中带有参数怎么办呢?
很简单,如下所示:
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) 二、多线程解决多任务串行执行任务的延迟问题未使用多线程
import datetime import schedule import time def job1(): print("I'm working for job1") time.sleep(2) print("job1:", datetime.datetime.now()) def job2(): print("I'm working for job2") time.sleep(2) print("job2:", datetime.datetime.now()) def run(): schedule.every(10).seconds.do(job1) schedule.every(10).seconds.do(job2) while True: schedule.run_pending() time.sleep(1)使用多线程
import datetime import schedule import threading import time def job1(): print("I'm working for job1") time.sleep(2) print("job1:", datetime.datetime.now()) def job2(): print("I'm working for job2") time.sleep(2) print("job2:", datetime.datetime.now()) def job1_task(): threading.Thread(target=job1).start() def job2_task(): threading.Thread(target=job2).start() def run(): schedule.every(10).seconds.do(job1_task) schedule.every(10).seconds.do(job2_task) while True: schedule.run_pending() time.sleep(1)
👁️ 阅读量:0
© 版权声明:本文《schedule模块定时执行任务》内容均为本站精心整理或网友自愿分享,如需转载请注明原文出处:https://www.zastudy.cn/wen/1686477930a264212.html。