关于python:在循环中将一个定时器放在一个函数内

Put a timer on a function inside while loop

本问题已经有最佳答案,请猛点这里访问。

关于它有很多问题,但我还不太明白。我必须将一些代码上传到服务器上才能全天候运行,而这些代码基本上是这样的:

1
2
3
4
while True:
    variable1 = function1()
    variable2 = function2()
    variable3 = function3()

比如说,我想每小时做一次variable2 = function2(),以提高性能(我不太了解,但我认为在上面放一个计时器会更好)

我不能在上面使用time.sleep(),因为代码必须继续运行。我提到服务器这件事是因为我不知道使用系统计时器的答案是否适用,我仍在学习如何使用它。忘了说我用的是python 2.7


不确定这是否是您想要的,但是这里有一个循环,它运行三个具有三个不同周期的函数:

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
28
import time

t1 = t2 = t3 = 0

period1 = 1.0 # do function1() every second
period2 = 3600.0  # do function2() every hour
period3 = 60.0 # do function3() every minute

sleep_seconds = 0.1   # or whatever makes sense

while True:

    t = time.time()

    if t - t1 >= period1:
        variable1 = function1()
        t1 = time.time()

    if t - t2 >= period2:
        variable2 = function2()
        t2 = time.time()

    if t - t3 >= period3:
        variable3 = function3()
        t3 = time.time()


    time.sleep( sleep_seconds )