运行时钟和触发

时间:2010-02-10 23:51:35

标签: python

持续运行时钟并每5秒触发一次其他功能。

请告诉我如何做到这一点。

非常感谢

3 个答案:

答案 0 :(得分:4)

>>> import sched, time
>>> s = sched.scheduler(time.time, time.sleep)
>>> def print_time():
...     s.enter(5, 1, print_time, ())
...     print "From print_time", time.time()
... 
>>> s.enter(0, 1, print_time, ())
Event(time=1265846894.4069381, priority=1, action=<function print_time at 0xb7d1ab1c>, argument=())
>>> s.run()
From print_time 1265846894.41
From print_time 1265846899.41
From print_time 1265846904.42
From print_time 1265846909.42

答案 1 :(得分:1)

import time

while True:
    time.sleep(5)
    someFunction()

正如gnibbler所说,间隔实际上是(5秒+运行someFunction所需的时间)。如果您需要它恰好是5秒钟:

targetTime = time.time()
while True:
    someFunction()
    targetTime += 5
    sleepTime = targetTime - time.time()
    if sleepTime>0:
        time.sleep(sleepTime)

答案 2 :(得分:1)

您可以使用sched模块中的调度程序。

每次完成时,只需让计划的功能自行重新安排。