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脚本
Apr 05 Python
简单介绍Python中的filter和lambda函数的使用
Apr 07 Python
详解Django中的权限和组以及消息
Jul 23 Python
Python 备份程序代码实现
Mar 06 Python
不到20行代码用Python做一个智能聊天机器人
Apr 19 Python
Django stark组件使用及原理详解
Aug 22 Python
python二维键值数组生成转json的例子
Dec 06 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
Feb 28 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
Mar 23 Python
PyQt5中向单元格添加控件的方法示例
Mar 24 Python
python 实现图片修复(可用于去水印)
Nov 19 Python
Python实现日志实时监测的示例详解
Apr 06 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传输数据的代码
2007/11/13 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
JavaScript 对象、函数和继承
2009/07/07 Javascript
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
javascript一些实用技巧小结
2011/03/18 Javascript
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
jQuery获取浏览器中的分辨率实现代码
2013/04/23 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
2016/03/22 Javascript
vue实现全选、反选功能
2020/11/17 Javascript
详谈js原型继承的一些问题
2017/09/06 Javascript
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
python利用beautifulSoup实现爬虫
2014/09/29 Python
解析Python编程中的包结构
2015/10/25 Python
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
python3.6下Numpy库下载与安装图文教程
2019/04/02 Python
Django中的用户身份验证示例详解
2019/08/07 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
实习心得体会
2014/01/02 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技