在发现Python自身的API在这方面没有很好支持这种情况下,想要使用Timer功能的话,除了第三方的模块外,还可以通过使用标准库为我们提供的sched模块和Timer类。这两个类不能算是真正的Timer,只能算是用来现实Timer的工具类。

不论在客户端应用程序还是服务器组件(包括窗口服务)定时器通常扮演一个重要的角色。写一个高效的定时器驱动型可管理代码要求对程序流程有一个清晰的理解及掌握,NET线程模型的精妙之处。.NET框架类库提供了三种不同的定时器类:System.Windows.Forms.Timer, System.Timers.Timer, 和System.Threading.Timer。每个类为不同的场合进行设计和优化。

我们经常需要定时的执行某个任务,在Linux下我们有强大的crontab,但是在Python这个粒度(定时执行函数),如何处理呢?除了第三方的模块外,标准库为我们提供了sched模块和Timer类。

下面将会对这两种类如何实现Timer做个简单的演示:

一、sched

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

使用步骤如下:

(1)生成调度器:s = sched.scheduler(time.time,time.sleep)

第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。可以说sched模块设计者是“在下很大的一盘棋”,比如第一个函数可以是自定义的一个函数,不一定是时间戳,第二个也可以是阻塞socket等。

(2)加入调度事件

其实有enter、enterabs等等,我们以enter为例子。

s.enter(x1,x2,x3,x4)

四个参数分别为:间隔事件、优先级(用于同时间到达的两个事件同时执行时定序)、被调用触发的函数,给他的参数(注意:一定要以tuple给如,如果只有一个参数就(xx,))

(3)运行

s.run()

注意sched模块不是循环的,一次调度被执行后就Over了,如果想再执行,请再次enter

二、Timer

Timer类也是一次性触发的,思路和sched大概差不多。

虽然说上面的两种现实看起来都很不专业,但是如果不借助第三方的库,可能也只能这样了。

通过上面的简洁的教程,编制python定时器也不是那么难学,相信你一定学会了python定时器的使用方法,赶紧用起来吧。

python timer使用-关于定时器的两种使用方法相关推荐

  1. [Win+Python]使用python接口测试时302重定向的两种处理方法

    目录 前言 1 接口简介 2 代码实现 2.1 自动重定向 2.2 跟随重定向 前言 我将在本文中简单介绍使用python进行接口测试时,遇到302重定向时的一些测试心得. 本文涉及实例中的一些关键信 ...

  2. C#winform定时器的两种使用方法

    第一种方法:直接拖Timer控件,然后设置参数,给定触发的内容: 1.拖Timer控件: 2.修改interval属性确定时间间隔: 3.双击timer1控件,给双击事件tick里面写触发的事件: 4 ...

  3. Python timeit 中的计时器的两种使用方法

    一.直接使用timeit(),repeat() 1.timeit # 代码结构: # from timeit import timeit     模块引入 # time1 = timeit(" ...

  4. 简单介绍python连接telnet和ssh的两种方式

    本文主要介绍了python连接telnet和ssh的两种方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Telnet 连接方式 #!/usr/bin/env p ...

  5. python ioc di_Spring介绍,IOC(控制反转),DI(依赖注入)介绍及两种注入方法

    Spring介绍,IOC(控制反转),DI(依赖注入)介绍及两种注入方法 第一中方法:在xml文件中注入: (1)开源的轻量级的应用开发框架 特点:a.简化开发:b.解耦:c.集成: 原理对象与对象之 ...

  6. python 读取wav 音频文件的两种方式

    python 中,常用的有两种可以读取wav音频格式的方法,如下所示: 1 import scipy 2 from scipy.io import wavfile 3 4 import soundfi ...

  7. python repair修复功能_详解Python修复遥感影像条带的两种方式

    GDAL修复Landsat ETM+影像条带 Landsat7 ETM+卫星影像由于卫星传感器故障,导致此后获取的影像出现了条带.如下图所示, 影像中均匀的布满条带. 使用GDAL修复影像条带的代码如 ...

  8. Python操作Neo4j图数据库的两种方式

    Python操作Neo4j图数据库的两种方式 前言 1. 用neo4j模块执行CQL ( cypher ) 语句 2. 用py2neo模块通过操作python变量,达到操作neo4j的目的 3. 用p ...

  9. Python加载csv文件的两种方式

    本文主要讲解下Python加载csv文件的两种方式,如果知道如何处理的就不必往下看了! 下面来简单介绍下. 实例中的数据集是kaggle的Digit Recognizer的train.csv文件,数据 ...

最新文章

  1. 使用 HttpServerUtility.Transfer 方法在同一应用程序的页面间重定向
  2. TCPView for Windows
  3. 《系统集成项目管理工程师》必背100个知识点-38资源平滑和资源平衡
  4. OpenCV检测ArUco板
  5. Objective -C Memory Management 内存管理 第一部分
  6. python字典有什么用_在Python中使用范围作为字典键,我有什么选...
  7. 双路服务器只显示一半内存,双路服务器只显示一半内存
  8. fragment和Activity同时操作UI引起的延迟、卡顿
  9. linux中iconv函数,Linux下编码转换(iconv函数族)
  10. 3650m5设置u盘启动_联想和华硕笔记本重装系统时新BIOS无法设置u盘启动怎么办
  11. android studio卡顿解决办法
  12. Python用正则表达式匹配ABAC和AABB的词语
  13. Python2 获取docx/doc文件内容
  14. at.allow与at.deny及cron.allow与cron.deny优先级的比较
  15. JCreator 使用技巧-1
  16. Linux修改http为https访问
  17. python实现千图成像
  18. 半导体器件物理期末复习
  19. 如何创建属于你自己的域名邮箱
  20. 别特么的鼓吹“副业刚需”了

热门文章

  1. python 写创建和追加一个文件
  2. mysql 避免使用NULL字段
  3. python3 List 中的字符串合并
  4. ios移动输入框被软键盘遮挡
  5. 2019寒假作业二:PTA7-1币值转换
  6. ios purelayout--基础使用--进阶使用--看这就够了
  7. 原生js给div添加类
  8. Eclipse运行jsp动态网页时,提示服务端口在使用中
  9. WEB打印大全(转)
  10. C#代码与javaScript函数的相互调用