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将html转成PDF的实现代码(包含中文)
Mar 04 Python
python使用自定义user-agent抓取网页的方法
Apr 15 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
Python标准库使用OrderedDict类的实例讲解
Feb 14 Python
Python 中包/模块的 `import` 操作代码
Apr 22 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
Jun 25 Python
PyCharm搭建Spark开发环境的实现步骤
Sep 05 Python
Win10下python 2.7与python 3.7双环境安装教程图解
Oct 12 Python
Python中使用filter过滤列表的一个小技巧分享
May 02 Python
关于探究python中sys.argv时遇到的问题详解
Feb 23 Python
python 实现mysql自动增删分区的方法
Apr 01 Python
Python合并pdf文件的工具
Jul 01 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 的 __FILE__ 常量
2007/01/15 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
php生成扇形比例图实例
2013/11/06 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
php删除指定目录的方法
2015/04/03 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
Javascript实现的分页函数
2007/02/07 Javascript
javascript getElementsByName()的用法说明
2009/07/31 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
JQuery1.8 判断元素是否绑定事件的方法
2014/07/10 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
2017/06/12 jQuery
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
浅谈Angular 中何时取消订阅
2017/11/22 Javascript
JS块级作用域和私有变量实例分析
2019/05/11 Javascript
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
pandas中去除指定字符的实例
2018/05/18 Python
对python Tkinter Text的用法详解
2018/10/11 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
pytorch中的inference使用实例
2020/02/20 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
python中yield的用法详解
2021/01/13 Python
Ajax实现页面无刷新留言效果
2021/03/24 Javascript
家长建议怎么写
2014/05/15 职场文书
2014年实验室工作总结
2014/12/03 职场文书
教师求职简历自我评价
2015/03/10 职场文书
刑事起诉书范文
2015/05/19 职场文书
辩论会主持词
2015/07/03 职场文书
灵能百分百第三季什么时候来?
2022/03/15 日漫
深入理解 Golang 的字符串
2022/05/04 Golang
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python