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计算程序运行时间的方法
Dec 13 Python
在Python的Django框架中编写错误提示页面
Jul 22 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
CentOS 7下安装Python3.6 及遇到的问题小结
Nov 08 Python
python3文件复制、延迟文件复制任务的实现方法
Sep 02 Python
python的命名规则知识点总结
Oct 04 Python
Python基于Tkinter编写crc校验工具
May 06 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 Python
python获取命令行参数实例方法讲解
Nov 02 Python
python基于pexpect库自动获取日志信息
Feb 01 Python
Python+uiautomator2实现自动刷抖音视频功能
Apr 29 Python
详解分布式系统中如何用python实现Paxos
May 18 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
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
成为好程序员必须避免的5个坏习惯
2014/07/04 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
jQuery原生的动画效果
2015/07/10 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
Javascript实现快速排序(Quicksort)的算法详解
2015/09/06 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
2017/03/10 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
2017/03/30 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
vue 实现小程序或商品秒杀倒计时
2019/04/14 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
[03:48]大碗DOTA
2019/07/25 DOTA
Python编程实现的简单Web服务器示例
2017/06/22 Python
python 读取Linux服务器上的文件方法
2018/12/27 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
大三自我鉴定范文
2013/10/05 职场文书
商务助理岗位职责
2013/11/13 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
行政处罚事先告知书
2015/07/01 职场文书
2015年小学生国庆节演讲稿
2015/07/30 职场文书
关于五一放假的通知
2015/08/18 职场文书
python爬虫selenium模块详解
2021/03/30 Python
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
python flappy bird小游戏分步实现流程
2022/02/15 Python
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL