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 相关文章推荐
Windows下Python的Django框架环境部署及应用编写入门
Mar 10 Python
解决Python 遍历字典时删除元素报异常的问题
Sep 11 Python
Python编程实现及时获取新邮件的方法示例
Aug 10 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
Feb 24 Python
用xpath获取指定标签下的所有text的实例
Jan 02 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
Python3日期与时间戳转换的几种方法详解
Jun 04 Python
TensorFlow索引与切片的实现方法
Nov 20 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
Feb 14 Python
Python环境配置实现pip加速过程解析
Nov 27 Python
python3中apply函数和lambda函数的使用详解
Feb 28 Python
使用Python开发贪吃蛇游戏 SnakeGame
Apr 30 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 debug 安装技巧
2011/04/30 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
查看源码的工具 学习jQuery源码不错的工具
2011/12/26 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
微信小程序入门教程
2016/11/18 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
Webpack性能优化 DLL 用法详解
2017/08/10 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
Vue中实现回车键切换焦点的方法
2020/02/19 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
Python中用max()方法求最大值的介绍
2015/05/15 Python
python实现点对点聊天程序
2018/07/28 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
2020/04/20 Python
Python错误的处理方法
2020/06/23 Python
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
大学生毕业求职简历的自我评价
2013/10/24 职场文书
2014年五一活动策划方案
2014/03/15 职场文书
婚宴邀请函
2015/01/30 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android