对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 相关文章推荐
跟老齐学Python之编写类之一创建实例
Oct 11 Python
python中getaddrinfo()基本用法实例分析
Jun 28 Python
django之常用命令详解
Jun 30 Python
Python基于回溯法子集树模板解决选排问题示例
Sep 07 Python
Python+matplotlib实现填充螺旋实例
Jan 15 Python
Python import与from import使用及区别介绍
Sep 06 Python
python读取文本中的坐标方法
Oct 14 Python
Django之编辑时根据条件跳转回原页面的方法
Aug 21 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
Aug 23 Python
python实现QQ邮箱发送邮件
Mar 06 Python
python写文件时覆盖原来的实例方法
Jul 22 Python
Python QT组件库qtwidgets的使用
Nov 02 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中字符安全过滤函数使用小结
2015/02/25 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
javascript跨域刷新实现代码
2011/01/01 Javascript
javascript实现动态侧边栏代码
2014/02/19 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
json数据处理及数据绑定
2017/01/25 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
vue拖拽组件使用方法详解
2018/12/01 Javascript
Windows下Node爬虫神器Puppeteer安装记
2019/01/09 Javascript
vue与bootstrap实现简单用户信息添加删除功能
2019/02/15 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
vue中音频wavesurfer.js的使用方法
2020/02/20 Vue.js
python 判断自定义对象类型
2009/03/21 Python
python使用多线程不断刷新网页的方法
2015/03/31 Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
Python 异常处理的实例详解
2017/09/11 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
详解Appium+Python之生成html测试报告
2019/01/04 Python
python 字典操作提取key,value的方法
2019/06/26 Python
Pytorch mask_select 函数的用法详解
2020/02/18 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
节能环保口号
2014/06/12 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
Redis如何一键部署脚本
2021/04/12 Redis
win10下go mod配置方式
2021/04/25 Golang