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获取网页状态码示例
Mar 30 Python
python中的闭包用法实例详解
May 05 Python
python递归查询菜单并转换成json实例
Mar 27 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
Apr 21 Python
python+django+sql学生信息管理后台开发
Jan 11 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
Jun 24 Python
padas 生成excel 增加sheet表的实例
Dec 11 Python
Python实现删除排序数组中重复项的两种方法示例
Jan 31 Python
Python初学者常见错误详解
Jul 02 Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 Python
Python实现密钥密码(加解密)实例详解
Apr 26 Python
python 递归相关知识总结
Mar 03 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+mysql分页代码详解
2008/03/27 PHP
PHP 图片文件上传实现代码
2010/12/29 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
2017/06/11 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
Exjs 入门篇
2010/04/07 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
如何屏蔽防止别的网站嵌入框架代码
2015/08/24 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
js省市区级联查询(插件版&无插件版)
2017/03/21 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
详解Node.js串行化流程控制
2017/05/04 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
详解vuex状态管理模式
2018/11/01 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
python 如何将office文件转换为PDF
2020/09/22 Python
Python字典dict常用方法函数实例
2020/11/09 Python
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
xml有哪些解析技术?区别是什么
2016/04/26 面试题
工业自动化毕业生自荐信范文
2014/01/04 职场文书
销售会计岗位职责
2014/03/15 职场文书
小学优秀教师材料
2014/12/15 职场文书
工作后的感想
2015/08/07 职场文书
小学中队长竞选稿
2015/11/20 职场文书
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python