对python周期性定时器的示例详解


Posted in Python onFebruary 19, 2019

一、用thread实现定时器

py_timer.py文件

#!/usr/bin/python
#coding:utf-8

import threading
import os
import sys

class _Timer(threading.Thread):
  def __init__(self, interval, function, args=[], kwargs={}):
    threading.Thread.__init__(self)
    self.interval = interval 
    self.function = function
    self.args = args
    self.kwargs = kwargs
    self.finished = threading.Event()

  def cancel(self):
    self.finished.set() 

  def run(self):
    self.finished.wait(self.interval) 
    if not self.finished.is_set():
      self.function(*self.args, **self.kwargs)
    self.finished.set()
    
class LoopTimer(_Timer):
  def __init__(self, interval, function, args=[], kwargs={}):
    _Timer.__init__(self, interval, function, args, kwargs)

  def run(self):
    while True:
      if not self.finished.is_set():
        self.finished.wait(self.interval)
        self.function(*self.args, **self.kwargs) 
      else:
        break


def testlooptimer():
  print("loop timer")


if __name__ == '__main__':
  t = LoopTimer(3.0,testlooptimer)
  t.start()

二、 使用

import py_timer

def serv_start():
#Perform first fork.
try:
      thread_timer = py_timer.LoopTimer(timeout, start_timer)
      thread_timer.start()
      thread_timer.cancel() #

    except Exception, ex:                            
      print("daemon: %s %s", type(ex), ex)



def start_timer():

print 'hello'

以上这篇对python周期性定时器的示例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python2.7删除文件夹和删除文件代码实例
Dec 18 Python
python模块之paramiko实例代码
Jan 31 Python
Python面向对象class类属性及子类用法分析
Feb 02 Python
python+pandas分析nginx日志的实例
Apr 28 Python
pandas筛选某列出现编码错误的解决方法
Nov 07 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
Jun 28 Python
Numpy之将矩阵拉成向量的实例
Nov 30 Python
Python函数的迭代器与生成器的示例代码
Jun 18 Python
删除pycharm鼠标右键快捷键打开项目的操作
Jan 16 Python
python 制作网站筛选工具(附源码)
Jan 21 Python
一文搞懂python异常处理、模块与包
Jun 26 Python
Python实现排序方法常见的四种
Jul 15 Python
Python3数字求和的实例
Feb 19 #Python
对Python定时任务的启动和停止方法详解
Feb 19 #Python
python的schedule定时任务模块二次封装方法
Feb 19 #Python
Python3 max()函数基础用法
Feb 19 #Python
Python3 log10()函数简单用法
Feb 19 #Python
Python3中exp()函数用法分析
Feb 19 #Python
详解Python3中ceil()函数用法
Feb 19 #Python
You might like
php的大小写敏感问题整理
2011/12/29 PHP
说说PHP的autoLoad自动加载机制
2012/09/27 PHP
限制文本字节数js代码
2007/03/06 Javascript
jquery select选中的一个小问题
2009/10/11 Javascript
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
2012/06/14 Javascript
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
自己写的Javascript计算时间差函数
2013/10/28 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
kaggle+mnist实现手写字体识别
2018/07/26 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
Python流程控制 while循环实现解析
2019/09/02 Python
python实现画循环圆
2019/11/23 Python
利用Vscode进行Python开发环境配置的步骤
2020/06/22 Python
python 怎样进行内存管理
2020/11/10 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
美国知名艺术画网站:Art.com
2017/02/09 全球购物
办理生育手续介绍信
2014/01/14 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
小学语文业务学习材料
2014/06/02 职场文书
教师个人培训总结
2015/02/11 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python