python定时任务-sched模块

摘要:
通过sched模块可以实现通过自定义时间,自定义函数,自定义优先级来执行函数。例如schedule.enterrun()一直被阻塞,直到所有任务全部执行结束。多线程执行定时任务范例二1importtime2importsched3fromthreadingimportTimer4defprint_name:5print"i'm%s"%str6print"start"7Timer.start()8Timer.start()9print"end"通过多线程,实现定时任务在多线程中,如果只通过schedule,会因为线程安全的问题会出现阻塞,一个任务执行,如果没有结束而另一个任务就要等待。通过threading.Timer可以避免这个问题效果就是直接执行Printstart和printend,而定时任务会分开执行。打印end不会阻塞。
通过sched模块可以实现通过自定义时间,自定义函数,自定义优先级来执行函数。
范例一
1 importtime
2 importsched
3 
4 schedule =sched.scheduler( time.time,time.sleep)
5 
6 deffunc(string1):
7     print "now excuted func is %s"%string1
8 
9 print "start"
10 schedule.enter(2,0,func,(1,))
11 schedule.enter(2,0,func,(2,))
12 schedule.enter(3,0,func,(3,))
13 schedule.enter(4,0,func,(4,))
14 schedule.run()
15 
16 print "end"
schedule是一个对象,叫什么名字都可以
schedule.enter(delay,priority,action,arguments)
第一个参数是一个整数或浮点数,代表多少秒后执行这个action任务
第二个参数priority是优先级,0代表优先级最高,1次之,2次次之,当
两个任务是预定在同一个时刻执行时,根据优先级决定谁先执行。
第三个参数就是你要执行的任务,可以简单理解成你要执行任务的函数的函数名
第四个参数是你要传入这个定时执行函数名函数的参数,最好用括号包起来,如果只传入一个
参数的时候用括号包起来,该参数后面一定要加一个逗号,如果不打逗号,会出现错误。
例如schedule.enter(delay, priority, action, (argument1,))
run()一直被阻塞,直到所有任务全部执行结束。每个任务在同一线程中运行,所以如果一个任务执行时间大于
其他任务的等待时间,那么其他任务会推迟任务的执行时间,这样保证没有任务丢失,但这些任务的调用时间会比设定的推迟。
多线程执行定时任务
范例二
1 importtime
2 importsched
3 from threading importTimer
4 defprint_name(str):
5     print "i'm %s"%str
6 print "start"
7 Timer(5,print_name,("superman",)).start()
8 Timer(10,print_name,("spiderman",)).start()
9 print "end"
通过多线程,实现定时任务
在多线程中,如果只通过schedule,会因为线程安全的问题会出现阻塞,一个任务执行,如果没有结束而另一个任务就要等待。
通过threading.Timer可以避免这个问题效果就是直接执行Print start和print end,而定时任务会分开执行。打印end不会阻塞。

免责声明:文章转载自《python定时任务-sched模块》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇安卓开发复习笔记(一)15个优秀的第三方 Web 技术集成 dodo下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

修改pycharm中的flask项目名遇到的坑

曾修改过自己的项目名,并在settings中的解释器也更正过来了。然后执行pip list 报错: failed to create process. 解决方法如下: 到你的项目的venv目录下的Scripts文件夹下,有2个文件名pip3-script.py和pip-script.py,在第一行中更正你新项目名的解释器路径即可即可。 #!D:python...

Shell终端收听音乐--网易云音乐命令行版

Musicbox:网易云音乐命令行版本 高品质网易云音乐命令行版本,简洁优雅,丝般顺滑,基于Python编写。 这款命令行的客户端使用 Python 构建,以 mpg123 作为播放后端: Vim 式的流畅操作,支持快捷键绑定 支持电台、收藏等各种特色功能 支持 OS X 及各类 Linux 发行版 安装Python2.* pacman -S pytho...

高中信息技术(Python) 必修1 数据与计算 源代码

本文章原文地址:https://www.cnblogs.com/BobHuang/p/15621121.html,原文体验更佳 教材P68中IDLE显示Python版本为3.7.0,所以建议使用Python3.7系列。 第一章 数据与信息 1.1 感知数据 1.2 数据、信息与知识 1.3 数据采集与编码 1.4 数据管理与安全 1.5 数据与大数据 第二...

python之tkinter使用-Grid(网格)布局管理器

1 # 使用tkinter编写登录窗口 2 # Grid(网格)布局管理器会将控件放置到一个二维的表格里,主控件被分割为一系列的行和列 3 # stricky设置对齐方式,参数N/S/W/E分别表示上、下、左、右 4 # columnspan:指定控件跨越多列显示 5 # rowspan:指定控件跨越多行显示 6 # padx、pad...

python 网络爬虫(二)

一、编写第一个网络爬虫 为了抓取网站,我们需要下载含有感兴趣的网页,该过程一般被称为爬取(crawling)。爬取一个网站有多种方法,而选择哪种方法更加合适,则取决于目标网站的结构。 首先探讨如何安全的下载网页,让后介绍3中爬去网站的常见方法: -- 爬取网站地图; -- 遍历每个网页的数据库 ID; -- 跟踪网页链接; 1、下载网页 要想爬取网页,我们...

Debian 7 安装 Python3.4

Debian 7 自带的python是2.7.3,要用最新的3.4版本怎么办?我们从官网下载压缩包自己编译。 一、安装编译用的包 1 $ sudo apt-get install build-essential 2 $ sudo apt-get install libncurses5-dev libncursesw5-dev libreadline6-de...