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之list和str比较
Sep 20 Python
Python基于TCP实现会聊天的小机器人功能示例
Apr 09 Python
python利用smtplib实现QQ邮箱发送邮件
May 20 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
pygame游戏之旅 添加游戏介绍
Nov 20 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
Dec 04 Python
pycharm重命名文件的方法步骤
Jul 29 Python
python3 selenium自动化 下拉框定位的例子
Aug 23 Python
Django 实现Admin自动填充当前用户的示例代码
Nov 18 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
Python rabbitMQ如何实现生产消费者模式
Aug 24 Python
python 获取字典键值对的实现
Nov 12 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 危险函数解释 分析
2009/04/22 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
ThinkPHP路由详解
2015/07/27 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
从零学习node.js之express入门(六)
2017/02/25 Javascript
JSONP基础知识详解
2017/03/19 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
JS实现网页端猜数字小游戏
2020/03/06 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
python中cPickle用法例子分享
2014/01/03 Python
python实现进程间通信简单实例
2014/07/23 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
Python实时获取cmd的输出
2015/12/13 Python
Python使用Pickle模块进行数据保存和读取的讲解
2019/04/09 Python
Python中os模块功能与用法详解
2020/02/26 Python
美国时尚女装在线:Missguided
2016/12/03 全球购物
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
物流管理专业职业生涯规划书
2014/01/06 职场文书
自我评价的写作规则
2014/01/06 职场文书
社区食品安全实施方案
2014/03/28 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
后备干部推荐材料
2014/12/24 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
golang import自定义包方式
2021/04/29 Golang
python机器学习实现oneR算法(以鸢尾data为例)
2022/03/03 Python
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers