当前位置: 首页 > 后端技术 > Python

使用python中的schedule模块定时执行任务

时间:2023-03-26 16:45:09 Python

Python有一个轻量级的定时任务调度库:schedule。他可以完成每一分钟、每一小时、每一天、星期几、特定日期的定时任务。因此,我们进行一些轻量级的定时任务是非常方便的。代码如下:1importschedule2importtime34defjob(name):5print("hernameis:",name)67name="longsongpong"8schedule.every(10).minutes.do(工作,名称)9schedule.every().hour.do(工作,名称)10schedule.every().day.at(“10:30”).do(工作,名称)11schedule.every(5.to(10).days.do(job,name)12schedule.every().monday.do(job,name)13schedule.every().wednesday.at("13:15").do(job,name)1415whileTrue:16schedule.run\_pending()17time.sleep(1)每十分钟执行一次任务每小时执行一次任务每天10:30执行一次任务每5到10天每周一此时执行一个任务每周三13点15分执行一个任务没问题;如果时间冲突,命令代码会依次执行如下:1importschedule2importtime3importthreading45defjob():6print("I'mworking...injob1start")7时间。sleep(15)8print("我在工作...在job1结束")910defjob2():11print("我在工作...在job2")1213schedule.every(10).seconds.do(工作)14schedule.every(10).seconds.do(job2)1516whileTrue:17schedule.run\_pending()18time.sleep(1)结果如下:I'mworking...injob1startI'mworking...injob1endI'mworking...injob2如果要多线程并发运行代码如下:1importschedule2importtime3importthreading45defjob():6print("I'mworking...injob1start")7time.sleep(15)8print("我在工作...在job1结束")910defjob2():11print("我在工作...在job2")12  13defrun\_threaded(job\_func):14job\_thread=threading.Thread(target=job\_func)15job\_thread.start()1617schedule.every(10).seconds.do(run\_threaded,job)18schedule.every(10).seconds.do(run\_threaded,job2)192021whileTrue:22schedule.run\_pending()23time.sleep(1)结果如下:1我正在工作...在job1start2我正在工作...在job23我在工作...在job1start4我在工作...在job25我在工作...在job1end6我在工作...在job1start7我在工作...在工作2