Python学习笔记之schedule 定时任务
目录
一、Schedule模块介绍
二、使用
1.安装
2.简单实例
3.带参执行
4.获取所有任务
5.常用设置
6.取消任务
三、注意事项
1.schedule方法是串行的
2.定时运行的函数job不应当是死循环类型的
3.schedule的时间间隔设置要长于job执行的时间
一、Schedule模块介绍
python中的轻量级定时任务调度库:schedule,可以按照秒,分,小时,日期或者自定义事件执行时间。如果想执行多个任务,也可以添加多个task。因此十分方便我们执行一些轻量级的定时任务。
二、使用
1.安装
命令行执行
pip install schedule
2.简单实例
import schedule
import timedef job1():print("我是任务1")def job2():print("我是任务2")if __name__ == '__main__':schedule.every(2).minutes.do(job1) # 每两分钟执行一次schedule.every().day.at("19:30").do(job2) # 每天19:30执行while True:schedule.run_pending() # 运行所有可以运行的任务time.sleep(1)
# 如果只运行一次
# schedule.every().minutes.do(job1).run()
效果如下:
3.带参执行
import schedule
import timedef job(name):print("我是%s" % name)if __name__ == '__main__':schedule.every(1).seconds.do(job, name='任务1 每秒执行1次')schedule.every(2).seconds.do(job, name='任务2 每2秒执行1次')while True:schedule.run_pending() # 运行所有可以运行的任务time.sleep(1)
效果如下:
4.获取所有任务
all_jobs = schedule.get_jobs()
5.常用设置
schedule.every().seconds # 每秒运行一次
schedule.every(2).seconds # 每2秒运行一次
schedule.every(1).to(5).seconds # 每1 - 5秒运行一次
schedule.every().minutes # 每分钟运行一次
schedule.every().hour # 每小时运行一次
schedule.every().day # 每天运行一次如果后面没有at表示每天当前时间执行一次
schedule.every().day.at("00:00") # 每天凌晨运行一次
schedule.every().week # 每周凌晨运行一次
schedule.every().wednesday.at("00:00") # 每周三凌晨运行一次
# at一些技巧
at("00:00") #凌晨12点
every().hour.at(':30') # 每30分
every().minute.at(':30') # 每30秒
6.取消任务
(1)取消所有任务
schedule.clear()
(2)取消指定任务
在设置任务的时候,为了后续方便管理任务,可以给任务打个标签,这样通过标签过滤获取任务或取消任务。
# .tag 打标签
schedule.every().seconds.do(job1, 'red').tag('color-tasks', 'color')
schedule.every().seconds.do(job1, 'yellow').tag('color-tasks', 'color')
schedule.every().seconds.do(job1, 'blue').tag('color-tasks', 'color')# get_jobs(标签):可以获取所有该标签的任务
colors = schedule.get_jobs('color')
print(colors)
# 取消所有 color-tasks 标签的任务
schedule.clear('color-tasks')
三、注意事项
1.schedule方法是串行的
如果各个任务之间时间不冲突,那是没问题的;如果时间有冲突的话,会串行的执行命令。可使用threading模块改成多线程。
2.定时运行的函数job不应当是死循环类型的
每一次定时任务会开启一个新的线程,万一线程僵死,执行次数多了就会演变成灾难。所以要有一个执行完毕的出口。
3.schedule的时间间隔设置要长于job执行的时间
如果schedule的时间间隔设置得比job执行的时间短,一样线程会堆积形成灾难,比如,job的执行时间是1个小时,但定时任务设置的每5分钟一次,那就会一直堆积线程。
Python学习笔记之schedule 定时任务相关推荐
- Python学习笔记:Day13 提升开发效率
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- [python教程入门学习]python学习笔记(CMD执行文件并传入参数)
本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...
- python学习笔记之编写readConfig读写配置文件
python学习笔记之编写readConfig读写配置文件_weixin_34055910的博客-CSDN博客
- Python学习笔记(十一)
Python学习笔记(十一): 生成器,迭代器回顾 模块 作业-计算器 1. 生成器,迭代器回顾 1. 列表生成式:[x for x in range(10)] 2. 生成器 (generator o ...
- Python学习笔记一简介及安装配置
Python学习笔记一 参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e54 ...
- python学习笔记目录
人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...
- Python学习笔记(二):标准流与重定向
Python学习笔记(二):标准流与重定向 - SamWei - 博客园 Python学习笔记(二):标准流与重定向 Posted on 2012-02-19 22:36 SamWei 阅读(176) ...
- python 学习笔记 12 -- 写一个脚本获取城市天气信息
近期在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么可以显示后最重要的就是显示什么的问题了. 最easy想到的就是显示时间啊,CPU利用率啊.IP地址之类的.那么我认为呢,假设可以显示当 ...
- python基本语法语句-python学习笔记:基本语法
原标题:python学习笔记:基本语法 缩进:必须使用4个空格来表示每级缩进,支持Tab字符 if语句,经常与else, elif(相当于else if) 配合使用. for语句,迭代器,依次处理迭代 ...
最新文章
- boost::asio与ACE的对比
- 手机自动化测试:appium源码分析之bootstrap六 (下)
- XMind2020的一些使用小技巧
- (笔记)Ubuntu下安装arm-linux-gcc-4.4.3.tar.gz (交叉编译环境)
- 【mysql问题】foreign key without name 解决方法
- 子之错父之过什么意思_胎教是什么意思?胎教有何意义?
- 理解杀毒软件技术的意义 脱壳、虚拟、启发式介绍
- .net core HttpClient 使用之消息管道解析(二)
- pcb设计实战与应用智能手机_一种针对毫米波雷达天线应用而优化设计的PCB层压板...
- java程序员个人能力介绍_Java操作员能力问题
- JS、CSS合并带来的效率提升
- Why not inherit from ListT?
- 网易python面试_网易游戏面试经验(一)
- 根据osdid 查询磁盘是ssd盘还是sas盘
- 【基础】CNN是靠什么线索学习到深度信息的?——一个经验性探索
- EditPlus使用编辑Object C
- 2020-03-31
- tftp命令下载或上传文件
- Hadoop3.x 之 MapReduce 开发总结(月薪过万)
- 深耕“有效私域”,雀巢集团携手腾讯重塑零售数字化体验