Python定时任务sched模块用法示例


Posted in Python onJuly 16, 2018

本文实例讲述了Python定时任务sched模块用法。分享给大家供大家参考,具体如下:

通过sched模块可以实现通过自定义时间,自定义函数,自定义优先级来执行函数。

范例一

import time
import sched
schedule = sched.scheduler( time.time,time.sleep)
def func(string1):
  print "now excuted func is %s"%string1
print "start"
schedule.enter(2,0,func,(1,))
schedule.enter(2,0,func,(2,))
schedule.enter(3,0,func,(3,))
schedule.enter(4,0,func,(4,))
schedule.run()
print "end"

schedule是一个对象,叫什么名字都可以

schedule.enter(delay,priority,action,arguments)
  • 第一个参数是一个整数或浮点数,代表多少秒后执行这个action任务
  • 第二个参数priority是优先级,0代表优先级最高,1次之,2次次之,当两个任务是预定在同一个时刻执行时,根据优先级决定谁先执行。
  • 第三个参数就是你要执行的任务,可以简单理解成你要执行任务的函数的函数名
  • 第四个参数是你要传入这个定时执行函数名函数的参数,最好用括号包起来,如果只传入一个参数的时候用括号包起来,该参数后面一定要加一个逗号,如果不打逗号,会出现错误。

例如:

schedule.enter(delay, priority, action, (argument1,))

run()一直被阻塞,直到所有任务全部执行结束。每个任务在同一线程中运行,所以如果一个任务执行时间大于其他任务的等待时间,那么其他任务会推迟任务的执行时间,这样保证没有任务丢失,但这些任务的调用时间会比设定的推迟。

多线程执行定时任务

范例二

import time
import sched
from threading import Timer
def print_name(str):
  print "i'm %s"%str
print "start"
Timer(5,print_name,("superman",)).start()
Timer(10,print_name,("spiderman",)).start()
print "end"

通过多线程,实现定时任务

在多线程中,如果只通过schedule,会因为线程安全的问题会出现阻塞,一个任务执行,如果没有结束而另一个任务就要等待。

通过threading.Timer可以避免这个问题效果就是直接执行Print startprint end,而定时任务会分开执行。打印end不会阻塞。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python解析xml文件实例分享
Dec 04 Python
Python遍历zip文件输出名称时出现乱码问题的解决方法
Apr 08 Python
python结合shell查询google关键词排名的实现代码
Feb 27 Python
Python中绑定与未绑定的类方法用法分析
Apr 29 Python
使用Python脚本和ADB命令实现卸载App
Feb 10 Python
浅谈DataFrame和SparkSql取值误区
Jun 09 Python
pandas.dataframe按行索引表达式选取方法
Oct 30 Python
详解Django 时间与时区设置问题
Jul 23 Python
pytorch GAN伪造手写体mnist数据集方式
Jan 10 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
Jan 16 Python
Python性能分析工具py-spy原理用法解析
Jul 27 Python
python zip()函数的使用示例
Sep 23 Python
python中使用print输出中文的方法
Jul 16 #Python
django用户登录和注销的实现方法
Jul 16 #Python
Flask框架实现给视图函数增加装饰器操作示例
Jul 16 #Python
flask框架使用orm连接数据库的方法示例
Jul 16 #Python
flask框架实现连接sqlite3数据库的方法分析
Jul 16 #Python
Sanic框架异常处理与中间件操作实例分析
Jul 16 #Python
对pycharm代码整体左移和右移缩进快捷键的介绍
Jul 16 #Python
You might like
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
PHP中余数、取余的妙用
2015/06/29 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
Prototype源码浅析 String部分(四)之补充
2012/01/16 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
js数组与字符串的相互转换方法
2014/07/09 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
vue不通过路由直接获取url中参数的方法示例
2017/08/24 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
axios向后台传递数组作为参数的方法
2018/08/11 Javascript
vue各种事件监听实例(小结)
2020/06/24 Javascript
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
python Pillow图像处理方法汇总
2019/10/16 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
意大利奢侈品网站:Italist
2016/08/23 全球购物
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
数学专业毕业生自荐信
2013/11/10 职场文书
销售队伍口号
2014/06/11 职场文书
工地质量标语
2014/06/12 职场文书
学习十八大的心得体会
2014/09/12 职场文书
电影小兵张嘎观后感
2015/06/03 职场文书
六年级数学教学反思
2016/02/16 职场文书
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL