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中比较运算符的使用
May 13 Python
对pandas的dataframe绘图并保存的实现方法
Aug 05 Python
Python中列表list以及list与数组array的相互转换实现方法
Sep 22 Python
使用django-crontab实现定时任务的示例
Feb 26 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
Mar 22 Python
nohup后台启动Python脚本,log不刷新的解决方法
Jan 14 Python
Python关于反射的实例代码分享
Feb 20 Python
Python dict和defaultdict使用实例解析
Mar 12 Python
Python常用数字处理基本操作汇总
Sep 10 Python
如何通过python计算圆周率PI
Nov 11 Python
python3列表删除大量重复元素remove()方法的问题详解
Jan 04 Python
python编写扎金花小程序的实例代码
Feb 23 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
iOS10推送通知开发教程
2016/09/19 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
JavaScript 监听textarea中按键事件
2009/10/08 Javascript
使用JS进行目录上传(相当于批量上传)
2010/12/05 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
如何使用jquery修改css中带有!important的样式属性
2016/04/28 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
js数组去重的hash方法
2016/12/22 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
Angular 4.X开发实践中的踩坑小结
2017/07/04 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
微信小程序开发之转发分享功能
2019/10/22 Javascript
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
python 换位密码算法的实例详解
2017/07/19 Python
Python及PyCharm下载与安装教程
2017/11/18 Python
Python编写一个优美的下载器
2018/04/15 Python
基于python实现简单日历
2018/07/28 Python
python变量的存储原理详解
2019/07/10 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
python deque模块简单使用代码实例
2020/03/12 Python
python装饰器三种装饰模式的简单分析
2020/09/04 Python
使用layui实现左侧菜单栏及动态操作tab项的方法
2020/11/10 HTML / CSS
linux面试题参考答案(4)
2013/01/28 面试题
小学教师管理制度
2014/01/18 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
万能检讨书
2015/01/27 职场文书
2015年学校医务室工作总结
2015/07/20 职场文书
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js
JS高级程序设计之class继承重点详解
2022/07/07 Javascript