对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实现面向对像的ASP程序实例
Nov 10 Python
python数组过滤实现方法
Jul 27 Python
Python的string模块中的Template类字符串模板用法
Jun 27 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
python画出三角形外接圆和内切圆的方法
Jan 25 Python
Python3.7实现中控考勤机自动连接
Aug 28 Python
python实现定时发送qq消息
Jan 18 Python
基于Python函数和变量名解析
Jul 19 Python
python实现多线程端口扫描
Aug 31 Python
Python猴子补丁Monkey Patch用法实例解析
Mar 23 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
Nov 26 Python
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
Jun 13 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
德生H-501的评价与改造
2021/03/02 无线电
PHP读取zip文件的方法示例
2016/11/17 PHP
浅谈PHP的反射机制
2016/12/15 PHP
mac系统下安装多个php并自由切换的方法详解
2017/04/21 PHP
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
js实现微博发布小功能
2017/01/12 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
详解Nodejs mongoose
2018/06/10 NodeJs
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
jQuery zTree插件快速实现目录树
2019/08/16 jQuery
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
Python httplib模块使用实例
2015/04/11 Python
Python查询IP地址归属完整代码
2017/06/21 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
python异步Web框架sanic的实现
2020/04/27 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
土木工程毕业生自荐信
2013/11/12 职场文书
放飞蜻蜓反思
2014/02/05 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
爱国电影观后感
2015/06/19 职场文书
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL