对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 中使用 GLOBAL引发的一系列问题
Oct 12 Python
Python正则替换字符串函数re.sub用法示例
Jan 19 Python
Python 正则表达式实现计算器功能
Apr 29 Python
Python探索之URL Dispatcher实例详解
Oct 28 Python
Python+matplotlib实现华丽的文本框演示代码
Jan 22 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
Django实现分页功能
Jul 02 Python
对Python3.x版本print函数左右对齐详解
Dec 22 Python
Django如何开发简单的查询接口详解
May 17 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
Oct 24 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
Python虚拟环境的创建和包下载过程分析
Jun 19 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面向对象程序设计之接口用法
2014/08/20 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
php弹出提示框的是实例写法
2019/09/26 PHP
Prototype Date对象 学习
2009/07/12 Javascript
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
动态获取复选框checkbox选中个数的jquery代码
2013/06/25 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
2015/08/11 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
Form表单上传文件(type="file")的使用
2017/08/03 Javascript
express框架实现基于Websocket建立的简易聊天室
2017/08/10 Javascript
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
使用apifm-wxapi模块中的问题及解决方法
2019/08/05 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
Python创建xml的方法
2015/03/10 Python
python实现2048小游戏
2015/03/30 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
python实现自主查询实时天气
2018/06/22 Python
Selenium元素的常用操作方法分析
2018/08/10 Python
详解Python是如何实现issubclass的
2019/07/24 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
Canvas波浪花环的示例代码
2020/08/21 HTML / CSS
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
大学生自荐信
2013/12/11 职场文书
大学生就业求职信
2014/06/12 职场文书
2015年试用期自我评价范文
2015/03/10 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
Go使用协程交替打印字符
2021/04/29 Golang