python

超轻量级php框架startmvc

对python周期性定时器的示例详解

更新时间:2020-06-25 02:06:01 作者:startmvc
一、用thread实现定时器py_timer.py文件#!/usr/bin/python#coding:utf-8importthreadingimportosimportsysclass_Timer

一、用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 周期性 定时器