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 strip lstrip rstrip使用方法
Sep 06 Python
举例讲解Python中is和id的用法
Apr 03 Python
python常见排序算法基础教程
Apr 13 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
Feb 07 Python
python 给DataFrame增加index行名和columns列名的实现方法
Jun 08 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
Dec 18 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
Feb 20 Python
windows下安装Python虚拟环境virtualenvwrapper-win
Jun 14 Python
python中id函数运行方式
Jul 03 Python
解决Windows下python和pip命令无法使用的问题
Aug 31 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 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函数utf8转gb2312编码
2006/12/21 PHP
浅析PHP的静态成员函数效率更高的原因
2014/06/13 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
2016/03/07 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
top.location.href 没有权限 解决方法
2008/08/05 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
用js代码改变单选框选中状态的简单实例
2013/12/18 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
JS实现左边列表移到到右边列表功能
2018/03/28 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
python使用udp实现聊天器功能
2018/12/10 Python
python绘制封闭多边形教程
2020/02/18 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
美国最大网上鞋店:Zappos
2016/07/25 全球购物
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
最新奶茶店创业计划书范文
2014/02/08 职场文书
模具设计与制造专业推荐信
2014/02/16 职场文书
岗位廉政承诺书
2014/03/27 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书