目录

一、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 定时任务相关推荐

  1. Python学习笔记:Day13 提升开发效率

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  2. [python教程入门学习]python学习笔记(CMD执行文件并传入参数)

    本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

  3. python学习笔记之编写readConfig读写配置文件

    python学习笔记之编写readConfig读写配置文件_weixin_34055910的博客-CSDN博客

  4. Python学习笔记(十一)

    Python学习笔记(十一): 生成器,迭代器回顾 模块 作业-计算器 1. 生成器,迭代器回顾 1. 列表生成式:[x for x in range(10)] 2. 生成器 (generator o ...

  5. Python学习笔记一简介及安装配置

    Python学习笔记一 参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e54 ...

  6. python学习笔记目录

    人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...

  7. Python学习笔记(二):标准流与重定向

    Python学习笔记(二):标准流与重定向 - SamWei - 博客园 Python学习笔记(二):标准流与重定向 Posted on 2012-02-19 22:36 SamWei 阅读(176) ...

  8. python 学习笔记 12 -- 写一个脚本获取城市天气信息

    近期在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么可以显示后最重要的就是显示什么的问题了. 最easy想到的就是显示时间啊,CPU利用率啊.IP地址之类的.那么我认为呢,假设可以显示当 ...

  9. python基本语法语句-python学习笔记:基本语法

    原标题:python学习笔记:基本语法 缩进:必须使用4个空格来表示每级缩进,支持Tab字符 if语句,经常与else, elif(相当于else if) 配合使用. for语句,迭代器,依次处理迭代 ...

最新文章

  1. boost::asio与ACE的对比
  2. 手机自动化测试:appium源码分析之bootstrap六 (下)
  3. XMind2020的一些使用小技巧
  4. (笔记)Ubuntu下安装arm-linux-gcc-4.4.3.tar.gz (交叉编译环境)
  5. 【mysql问题】foreign key without name 解决方法
  6. 子之错父之过什么意思_胎教是什么意思?胎教有何意义?
  7. 理解杀毒软件技术的意义 脱壳、虚拟、启发式介绍
  8. .net core HttpClient 使用之消息管道解析(二)
  9. pcb设计实战与应用智能手机_一种针对毫米波雷达天线应用而优化设计的PCB层压板...
  10. java程序员个人能力介绍_Java操作员能力问题
  11. JS、CSS合并带来的效率提升
  12. Why not inherit from ListT?
  13. 网易python面试_网易游戏面试经验(一)
  14. 根据osdid 查询磁盘是ssd盘还是sas盘
  15. 【基础】CNN是靠什么线索学习到深度信息的?——一个经验性探索
  16. EditPlus使用编辑Object C
  17. 2020-03-31
  18. tftp命令下载或上传文件
  19. Hadoop3.x 之 MapReduce 开发总结(月薪过万)
  20. 深耕“有效私域”,雀巢集团携手腾讯重塑零售数字化体验

热门文章

  1. RESTful 设计理论
  2. oracle 单机改rac,把oracle rac 转化作单机数据库
  3. web前端开发技术实验与实践(第三版)储久良编著 课外拓展训练1.1
  4. 基于 date-fns 封装 utils
  5. 字符串练习2-遍历字符串
  6. ffmpeg将视频编码为H264格式
  7. [英国访问学者]如何获取邀请函
  8. MLU的服务器测试消息,tomcat 启动服务器日志小结
  9. OpenCV使用教程-读取图像imread使用说明
  10. JIRA简介及基本概念