对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中的循环语句的用法
Apr 09 Python
Python输出汉字字库及将文字转换为图片的方法
Jun 04 Python
使用python脚本实现查询火车票工具
Jul 19 Python
Selenium定位元素操作示例
Aug 10 Python
解决vscode python print 输出窗口中文乱码的问题
Dec 03 Python
Django-Model数据库操作(增删改查、连表结构)详解
Jul 17 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
Sep 23 Python
Python数据结构dict常用操作代码实例
Mar 12 Python
利用jupyter网页版本进行python函数查询方式
Apr 14 Python
零基础学Python之前需要学c语言吗
Jul 21 Python
python3中编码获取网页的实例方法
Nov 16 Python
Python自动化测试PO模型封装过程详解
Jun 22 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的可变变量名的使用方法分享
2012/02/05 PHP
PHP合并静态文件详解
2014/11/14 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
详解PHP中cookie和session的区别及cookie和session用法小结
2016/06/12 PHP
Javascript中的变量使用说明
2010/05/18 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
python生成圆形图片的方法
2020/03/25 Python
Django中Model的使用方法教程
2018/03/07 Python
Python docx库用法示例分析
2019/02/16 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
wxPython色环电阻计算器
2019/11/18 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
Python的Tqdm模块实现进度条配置
2021/02/24 Python
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
病人写给医生的感谢信
2015/01/23 职场文书
导游词欢迎词
2015/02/02 职场文书
个人工作年终总结
2015/03/09 职场文书
红歌会主持词
2015/07/02 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python
MySQL GRANT用户授权的实现
2021/06/18 MySQL