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解析json实例方法
Nov 19 Python
python实现批量转换文件编码(批转换编码示例)
Jan 23 Python
纯Python开发的nosql数据库CodernityDB介绍和使用实例
Oct 23 Python
Python使用urllib2模块实现断点续传下载的方法
Jun 17 Python
将Emacs打造成强大的Python代码编辑工具
Nov 20 Python
python Socket之客户端和服务端握手详解
Sep 18 Python
Python实现读取txt文件并画三维图简单代码示例
Dec 09 Python
基于pandas中expand的作用详解
Dec 17 Python
Python 实现加密过的PDF文件转WORD格式
Feb 04 Python
python通过matplotlib生成复合饼图
Feb 06 Python
python中turtle库的简单使用教程
Nov 11 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
Nov 28 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一个名片库程序
2006/10/09 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
PHP5.4起内置web服务器使用方法
2016/08/09 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
javascript 短路法代码精简
2009/08/20 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
jQuery 无限级菜单的简单实例
2014/02/21 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
jquery在vue脚手架中的使用方式示例
2017/08/29 jQuery
详解vue服务端渲染浏览器端缓存(keep-alive)
2018/10/12 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
[05:06]TI4西雅图DOTA2前线报道 海涛密探LGD训练
2014/07/09 DOTA
python条件和循环的使用方法
2013/11/01 Python
python爬取网站数据保存使用的方法
2013/11/20 Python
Python通过select实现异步IO的方法
2015/06/04 Python
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
详解python中的线程
2018/02/10 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
python中import与from方法总结(推荐)
2019/03/21 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
python多进程使用函数封装实例
2020/05/02 Python
keras K.function获取某层的输出操作
2020/06/29 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
高中毕业生生活的自我评价
2013/12/08 职场文书
大学生学年个人总结
2015/02/15 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
2015年底工作总结范文
2015/05/15 职场文书