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库urllib与urllib2主要区别分析
Jul 13 Python
一些常用的Python爬虫技巧汇总
Sep 28 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
Jan 02 Python
Python中关键字global和nonlocal的区别详解
Sep 03 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
python爬取淘宝商品销量信息
Nov 16 Python
使用python将图片按标签分入不同文件夹的方法
Dec 08 Python
python实现Excel文件转换为TXT文件
Apr 28 Python
python实现代码统计器
Sep 19 Python
python基于K-means聚类算法的图像分割
Oct 30 Python
python Socket网络编程实现C/S模式和P2P
Jun 22 Python
python中常用的数据结构介绍
Jan 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
对textarea框的代码调试,而且功能上使用非常方便,酷
2006/06/30 Javascript
浅析Js中的单引号与双引号问题
2013/11/06 Javascript
使用js画图之画切线
2015/01/12 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
arguments对象验证函数的参数是否合法
2015/06/26 Javascript
jquery实现Li滚动时滚动条自动添加样式的方法
2015/08/10 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
ajax图片上传,图片异步上传,更新实例
2016/12/30 Javascript
微信小程序图表插件(wx-charts)实例代码
2017/01/17 Javascript
JavaScript实现异步图像上传功能
2018/07/12 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
vue解决一个方法同时发送多个请求的问题
2018/09/25 Javascript
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
jQuery操作事件完整实例分析
2020/01/10 jQuery
微信小程序实现modal弹出框遮罩层组件(可带文本框)
2020/12/20 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
Python基于Tkinter实现的记事本实例
2015/06/17 Python
python list格式数据excel导出方法
2018/10/31 Python
Python中的self用法详解
2019/08/06 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
Delphi笔试题
2016/11/14 面试题
仓管员岗位职责范文
2013/11/08 职场文书
语文教育专业推荐信范文
2013/11/25 职场文书
医药学专业大学生职业生涯规划书论文
2014/01/21 职场文书
员工保密承诺书
2014/05/28 职场文书
医院领导班子四风对照检查材料
2014/09/27 职场文书
锅炉工岗位职责
2015/02/13 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
详细聊聊vue中组件的props属性
2021/11/02 Vue.js
用JS写一个发布订阅模式
2021/11/07 Javascript