我们经常需要定时的执行某一个任务,在C/C++ 等语言中我们可以使用定时器,但是在Python中,标准库给我们提供了两种方式Timer和Sched。

先说sched模块,准确的说,它是一个调度(延时处理机制),每次想要定时执行某任务都必须写入一个调度。使用步骤如下:

1. 生成调度器

s = sched.scheduler(time.time,time.sleep)

第一个参数是一个可以返回时间戳的函数,第二个参数是指未达到定时时间时阻塞函数。

2. 加入调度事件

其实有enter、enterabs等等

s.enter(a,b,c,d);

四个参数分别为:间隔事件、优先级(用于同时间到达的两个事件同时执行时定序)、被调用触发的函数,给他的参数

3. 运行调度器

s.run()

然而:sched模块不是循环的,一次调度被执行后就结束了,如果想再执行,需要再次enter。

1 #!/usr/bin/env python

2 #-*- coding:utf-8 -*-

3 from threading importTimer4 importsched5

6 #第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。

7 schedule=sched.scheduler(time.time,time.sleep)8

9 #被周期性调度触发的函数

10 defexecute_command(cmd, inc):11 os.system(cmd)12 #schedule.enter(inc, 0, execute_command, (cmd, inc))

13

14 def main(cmd, inc=60):15 #enter四个参数分别为:间隔事件、优先级(用于同时间到达的两个事件同时执行时定序)、被调用触发的函数,

16 #给该触发函数的参数(tuple形式)

17 schedule.enter(0, 0, execute_command, (cmd, inc))18 schedule.run()19

20 main("netstat -anp | grep tcp", 60)

注意:1. 如果以上函数只能执行一次,如果需要多次循环执行,需要再执行函数中再次enter。2. 如果执行函数只需要一个参数,输入时以(param1,)形式,逗号需要。如果不需要参数则,只需要()即可。

再来说Timer。

Timer类,也不是默认循环调用的,如果需要循环调用,方法与Sched类似,多次start。

Timer类的使用方法如下

1 #!/usr/bin/env python

2 #-*- coding:utf-8 -*-

3 from threading importTimer4

5 defprint_time():6 print "Current time is :", time.time()7 Timer(5,print_time,()).start()8

9 defprint_sometime():10 Timer(5,print_time,()).start()11

12 print_sometime()

View Code

另外,关于timer 和Sched的官方解释为:https://docs.python.org/2/library/sched.html

python timer 死掉_Python定时事件 Timer sched相关推荐

  1. python timer 死掉_Python timer定时器两种常用方法解析 Python中如何在一段时间后停止程序...

    如何调用定时器 python 如何在python里面for循环中放了一个定时函数,当定# 我的构想程序效果 for Img in ImgArray: timer = threading.Timer(1 ...

  2. python timer怎么用_python定时器(Timer)用法简单实例

    python定时器(Timer)用法简单实例 本文实例讲述了python定时器(Timer)用法.分享给大家供大家参考.具体如下: # encoding: UTF-8 import threading ...

  3. python重复执行函数_Python threading 单线程 timer重复调用函数

    项目中需要使用定时器,每次都使用构造器函数调用: timer = threading.Timer(timerFlag, upload_position) timer.start() 打印线程后发现,每 ...

  4. python timer详解_python线程定时器Timer实现原理解析

    这篇文章主要介绍了python线程定时器Timer实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.线程定时器Timer原理 原理比较 ...

  5. python 定时器实现原理_python线程定时器Timer实现原理解析

    这篇文章主要介绍了python线程定时器Timer实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.线程定时器Timer原理 原理比较 ...

  6. python修改桌面壁纸_python定时更换桌面壁纸

    介绍 python基于selenium2中的webdriver以及pywin32模块,定时从指定网站随机下载壁纸,然后更新桌面壁纸的实现. 代码 首先定义一个基于selenium的webdriver的 ...

  7. python数据分析天气预报论文_Python定时发送天气预报邮件

    用python爬虫爬到的天气预报,使用smtplib和email模块可以发送到邮箱,使用schedule模块可以定时发送.以下是代码- #导入模块 import requests from bs4 i ...

  8. python怎么跑数据_python定时重跑获取数据

    做大数据的童鞋经常会写定时任务跑数据,由于任务之间的依赖(一般都是下游依赖上游的数据产出),所以经常会导致数据获取失败,因为很多人发现数据失败后 都会去查看日志,然后手动去执行自己的任务.下面我实现了 ...

  9. Nginx的定时事件的实现(timer)

    在前面的文章里面就说到了在事件循环中除了要处理所有的从epoll中获取的事件之外,还要处理一些timer事件,这篇文章就讲讲Nginx的timer是如何实现的. 在讲Nginx的实现之前,我们可以先回 ...

最新文章

  1. pythonfor循环遍历list_为什么for循环可以遍历list:Python中迭代器与生成器
  2. 测试用例设计怎么做?怎么设计一个好的测试用例?
  3. mysql脚本文件长什么样_在linux下执行mysql脚本文件,内容是创建一个FUNCTION,总是报错,请帮看下原因是什么?多谢...
  4. 英语语法---从句总结
  5. 关于使用DataGrid的ButtonColumn,动态添加DataGrid列,实现不定列n个文件的下载功能...
  6. 实现一个正则表达式引擎in Python(一)
  7. 分类数据显示功能_缓存优化
  8. iPhone 12 要来了,手机是时候换到 11 了
  9. python语言通过import_python语言的引入(import)机制简述
  10. 62.不同的路径(力扣leetcode) 博主可答疑该问题
  11. MATLAB滑动窗口(移动方差)
  12. 【备战NOIP】专题复习1-动态规划-背包问题
  13. 百度智能云BCC云服务器释放实例
  14. Android手机哪个悬浮好用,别羡慕苹果了,安卓悬浮神器比 iPhone 好用太多!
  15. linux tar 压缩 删除源文件,Linux tar 如何在压缩之后删除原文件
  16. 单例模式-DoubleCheck
  17. 学会这十五招,斗地主想输都难
  18. 服务器cpu性能最大值,服务器cpu性能排行
  19. Plist文件、NSBundle
  20. 敏捷开发培训后的感想

热门文章

  1. C#基础知识1-深入理解值类型和引用类型
  2. c语言 数组循环左移m位
  3. 【JAVA 第三章 流程控制语句】课后习题 找零钱
  4. Nexus9刷机全纪录
  5. 【网站建设】简单一行代码,为网站开启深色模式支持
  6. C#LeetCode刷题之#257-二叉树的所有路径(Binary Tree Paths)
  7. python lxml使用_使用lxml和Python进行Web抓取的简介
  8. node 后台文章编辑器_我如何使用Node从报纸网站上刮掉7000篇文章
  9. iphone 2x 3x_iPhone X的未来:从现实到荒诞
  10. JavaScript正在完善—解释