对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标准库urllib2的一些使用细节总结
Mar 16 Python
简单谈谈python基本数据类型
Sep 26 Python
selenium跳过webdriver检测并模拟登录淘宝
Jun 12 Python
python安装pil库方法及代码
Jun 25 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
Jul 25 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 Python
pytorch::Dataloader中的迭代器和生成器应用详解
Jan 03 Python
Python实现Wordcloud生成词云图的示例
Mar 30 Python
在keras里实现自定义上采样层
Jun 28 Python
pycharm全局搜索的具体步骤
Jul 28 Python
如何利用python之wxpy模块玩转微信
Aug 17 Python
在Pycharm中安装Pandas库方法(简单易懂)
Feb 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
图书管理程序(二)
2006/10/09 PHP
PHP实现采集程序原理和简单示例代码
2007/03/18 PHP
基于asp+ajax和数据库驱动的二级联动菜单
2010/05/06 PHP
php获得url参数中具有&的值的方法
2014/03/05 PHP
PHP文件与目录操作示例
2016/12/24 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
vue2.0父子组件间通信的实现方法
2017/04/19 Javascript
javascript 封装Date日期类实例详解
2017/05/28 Javascript
BootStrap数据表格实例代码
2017/09/13 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
python通过yield实现数组全排列的方法
2015/03/18 Python
部署Python的框架下的web app的详细教程
2015/04/30 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
佐卡伊官网:中国知名珠宝品牌
2017/02/05 全球购物
阿波罗盒子:Apollo Box
2017/08/14 全球购物
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
求网格中的黑点分布
2013/11/06 面试题
大学生职业规划书的范本
2014/02/18 职场文书
一年级学生评语大全
2014/04/21 职场文书
2016年第32个教师节红领巾广播稿
2015/12/18 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
vue/cli 配置动态代理无需重启服务的方法
2022/05/20 Vue.js