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用 KNN 进行验证码识别的实现方法
Feb 06 Python
Python3 replace()函数使用方法
Mar 19 Python
VScode编写第一个Python程序HelloWorld步骤
Apr 06 Python
pyqt5 实现多窗口跳转的方法
Jun 19 Python
教你如何编写、保存与运行Python程序的方法
Jul 12 Python
Python列表list常用内建函数实例小结
Oct 22 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
Mar 08 Python
Python 3.8 新功能来一波(大部分人都不知道)
Mar 11 Python
Jupyter notebook如何修改平台字体
May 13 Python
Django数据统计功能count()的使用
Nov 30 Python
Python Selenium操作Cookie的实例方法
Feb 28 Python
python实现简单倒计时功能
Apr 21 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实现路由映射到指定控制器
2016/08/13 PHP
PHP中大括号'{}'用法实例总结
2017/02/08 PHP
ThinkPHP删除栏目(实现批量删除栏目)
2017/06/21 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
php时间戳转换代码详解
2019/08/04 PHP
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
[原创]jquery判断元素内容是否为空的方法
2018/05/04 jQuery
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
2020/06/05 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
轻松掌握python设计模式之访问者模式
2016/11/18 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
python 定时修改数据库的示例代码
2018/04/08 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
英国Office鞋店德国网站:在线购买鞋子、靴子和运动鞋
2018/12/19 全球购物
培训演讲稿范文
2014/01/12 职场文书
爷爷追悼会答谢词
2014/01/24 职场文书
俄罗斯商务邀请函
2014/01/26 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
公司回复函格式
2015/07/14 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
python 逐步回归算法
2021/04/06 Python
Django实现drf搜索过滤和排序过滤
2021/06/21 Python
mysql数据库实现设置字段长度
2022/06/10 MySQL