对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 远程统计文件代码分享
May 14 Python
Python将阿拉伯数字转换为罗马数字的方法
Jul 10 Python
python切片及sys.argv[]用法详解
May 25 Python
Python实现的简单计算器功能详解
Aug 25 Python
python退出命令是什么?详解python退出方法
Dec 10 Python
python爬虫 正则表达式解析
Sep 28 Python
使用Python生成200个激活码的实现方法
Nov 22 Python
Python猴子补丁知识点总结
Jan 05 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
Jun 04 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 Python
Python批量删除mysql中千万级大量数据的脚本分享
Dec 03 Python
Python3.9.1中使用match方法详解
Feb 08 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+AJAX实现无刷新注册(带用户名实时检测)
2007/01/02 PHP
php 随机排序广告的实现代码
2011/05/09 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
AJAX的使用方法详解
2017/04/29 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
2014/03/18 NodeJs
ECMAScript中函数function类型
2015/06/03 Javascript
基于angularjs实现图片放大镜效果
2016/08/31 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
react+antd 递归实现树状目录操作
2020/11/02 Javascript
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
python多进程(加入进程池)操作常见案例
2019/10/21 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
pandas 数据类型转换的实现
2020/12/29 Python
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
优秀党员转正的自我评价
2013/10/06 职场文书
超市后勤自我鉴定
2014/01/17 职场文书
学生干部学习的自我评价
2014/02/18 职场文书
教师师德承诺书
2014/03/26 职场文书
商务日语专业自荐信
2014/04/17 职场文书
《悯农》教学反思
2014/04/28 职场文书
计算机专业毕业生求职信
2014/04/30 职场文书
优秀员工演讲稿
2014/05/19 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
工地材料员岗位职责
2015/04/11 职场文书
Android开发之底部导航栏的快速实现
2022/04/28 Java/Android