python 定时器,轮询定时器的实例

时间:2022-03-20 18:56:23

python 定时器默认定时器只执行一次,第一个参数单位S,几秒后执行

?
1
2
3
4
5
6
7
import threading
 
def fun_timer():
 print('Hello Timer!')
 
timer = threading.Timer(1, fun_timer)
timer.start()

改成以下可以执行多次

建立loop_timer.py

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from threading import _Timer
class LoopTimer(_Timer):
 """Call a function after a specified number of seconds:
 
 
   t = LoopTi
   mer(30.0, f, args=[], kwargs={})
   t.start()
   t.cancel()  # stop the timer's action if it's still waiting
 
 
 """
 
 def __init__(self, interval, function, args=[], kwargs={}):
  _Timer.__init__(self, interval, function, args, kwargs)
 
 def run(self):
  '''self.finished.wait(self.interval)
  if not self.finished.is_set():
   self.function(*self.args, **self.kwargs)
  self.finished.set()'''
  while True:
   self.finished.wait(self.interval)
   if self.finished.is_set():
    self.finished.set()
    break
   self.function(*self.args, **self.kwargs)

调用

?
1
2
t = LoopTimer(120, fun_timer)
  t.start()

以上这篇python 定时器,轮询定时器的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/u013378306/article/details/79024432