对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写的创建文件夹自定义函数mkdir()
Aug 25 Python
python通过imaplib模块读取gmail里邮件的方法
May 08 Python
在Python中marshal对象序列化的相关知识
Jul 01 Python
TensorFlow入门使用 tf.train.Saver()保存模型
Apr 24 Python
在pycharm 中添加运行参数的操作方法
Jan 19 Python
对pandas通过索引提取dataframe的行方法详解
Feb 01 Python
python删除列表元素的三种方法(remove,pop,del)
Jul 22 Python
python性能测量工具cProfile使用解析
Sep 26 Python
pytorch 实现在预训练模型的 input上增减通道
Jan 06 Python
Python sqlite3查询操作过程解析
Feb 20 Python
学python爬虫能做什么
Jul 29 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 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获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
jQuery 处理表单元素的代码
2010/02/15 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
前后台交互过程中json格式如何解析以及如何生成
2012/12/26 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
2017/08/07 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
详解Vue中的Props与Data细微差别
2020/03/02 Javascript
js实现全选和全不选
2020/07/28 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
Django choices下拉列表绑定实例
2020/03/13 Python
VICHY薇姿俄罗斯官方网上商店:法国护肤品牌,火山温泉水
2019/11/22 全球购物
创伤外科专业推荐信范文
2013/11/19 职场文书
学前教育学生自荐信范文
2013/12/31 职场文书
私人会所最新创业计划书范文
2014/03/24 职场文书
婚庆公司开业主持词
2015/06/30 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技