对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中的常量和变量代码详解
Jul 25 Python
python针对不定分隔符切割提取字符串的方法
Oct 26 Python
Python基本数据结构之字典类型dict用法分析
Jun 08 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 Python
python3 selenium自动化 frame表单嵌套的切换方法
Aug 23 Python
Python计算公交发车时间的完整代码
Feb 12 Python
python 3.8.3 安装配置图文教程
May 21 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 Python
Python使用for生成列表实现过程解析
Sep 22 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
Oct 04 Python
Django-silk性能测试工具安装及使用解析
Nov 28 Python
浅析Python实现DFA算法
Jun 26 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 simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
javascript取消文本选定的实现代码
2010/11/14 Javascript
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
常用jQuery选择器汇总
2017/02/02 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
vue观察模式浅析
2018/09/25 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
[14:50]2018DOTA2亚洲邀请赛开幕式
2018/04/03 DOTA
python安装numpy&安装matplotlib& scipy的教程
2017/11/02 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
python中get和post有什么区别
2020/06/19 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
介绍一下Linux中的链接
2016/06/05 面试题
资产经营总监岗位职责范文
2013/12/01 职场文书
考试作弊被抓检讨书
2014/01/10 职场文书
取保候审保证书
2014/04/30 职场文书
洗手间标语
2014/06/23 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
爱国主义影片观后感
2015/06/18 职场文书
九不准学习心得体会
2016/01/23 职场文书
详解Spring Security如何在权限中使用通配符
2022/06/28 Java/Android