对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单线程实现多个定时器示例
Mar 30 Python
python 网络编程详解及简单实例
Apr 25 Python
python 获取当天每个准点时间戳的实例
May 22 Python
对pandas中to_dict的用法详解
Jun 05 Python
Centos下实现安装Python3.6和Python2共存
Aug 15 Python
深入解析python中的实例方法、类方法和静态方法
Mar 11 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
Sep 26 Python
python 哈希表实现简单python字典代码实例
Sep 27 Python
Python使用matplotlib绘制Logistic曲线操作示例
Nov 28 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 Python
python 如何在list中找Topk的数值和索引
May 20 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连接access数据库方法
2013/11/11 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
两千行代码的PHP学习笔记汇总
2014/10/05 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
laravel配置Redis多个库的实现方法
2019/04/10 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
2016/05/26 Javascript
node-http-proxy修改响应结果实例代码
2016/06/06 Javascript
js计算系统当前日期是星期几的方法
2016/07/14 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
Python super()函数使用及多重继承
2020/05/06 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
学院书画协会部门岗位职责
2013/12/01 职场文书
银行实习生的自我评价
2014/01/13 职场文书
新春寄语大全
2014/04/09 职场文书
《青海高原一株柳》教学反思
2014/04/25 职场文书
校园安全广播稿范文
2014/09/25 职场文书
2014年公务员转正工作总结
2014/11/07 职场文书
Python实现Matplotlib,Seaborn动态数据图
2022/05/06 Python