对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中的闭包总结
Sep 18 Python
Django 如何获取前端发送的头文件详解(推荐)
Aug 15 Python
Python高级用法总结
May 26 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
Python中collections模块的基本使用教程
Dec 07 Python
使用python实现语音文件的特征提取方法
Jan 09 Python
对python:循环定义多个变量的实例详解
Jan 20 Python
利用python实现周期财务统计可视化
Aug 25 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
Django模型层实现多表关系创建和多表操作
Jul 21 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
May 20 Python
Python自动操作神器PyAutoGUI的使用教程
Jun 16 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 传值赋值与引用赋值的区别
2010/12/29 PHP
php FLEA中二叉树数组的遍历输出
2012/09/26 PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
2013/09/30 PHP
zf框架的Filter过滤器使用示例
2014/03/13 PHP
yii操作session实例简介
2014/07/31 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
jquery $.each() 使用小探
2013/08/23 Javascript
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
nodejs微信开发之自动回复的实现
2019/03/17 NodeJs
仿ElementUI实现一个Form表单的实现代码
2019/04/23 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
2019/11/29 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
2020/08/10 Javascript
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
Python进度条实时显示处理进度的示例代码
2018/01/30 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
python实现电子词典
2020/03/03 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
ECOSUSI官网:女式皮革背包
2019/09/27 全球购物
就业表自我评价分享
2014/02/06 职场文书
联谊会主持词
2014/03/26 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
浅谈Java父子类加载顺序
2021/08/04 Java/Android