1

可能重复:
在 Python 中每 x 秒重复执行一个函数的最佳方法是什么?

嗨,这是我的代码:

client = myclient(info1,info2)
                sellor()
                Contractor()

它工作得很好,但我想做的是让python无限期地每60秒启动一次该代码......我实际上不明白我如何将代码与时间循环放在一起感谢任何帮助谢谢

4

6 回答 6

4

如果 60 秒忽略了执行代码所需的时间):

from time import sleep

while True:
    sleep(60)
    # your code here

但如果 60 秒考虑到执行代码所需的时间:

from time import sleep
from os import fork       
while True:
    sleep(60)
    fork() # create child process
    # your code here
于 2012-12-10T13:08:13.513 回答
2

使用睡眠方法。只需创建一个循环(while、for、whatever)并在每次迭代时休眠 60 秒。

于 2012-12-10T13:07:36.567 回答
1
import time

while True:

  client = myclient(info1,info2)
            sellor()
            Contractor()
            time.sleep(10)

希望它有效,所有最好的伙伴

于 2012-12-10T13:10:32.807 回答
0
import time

repeat_time = 3.0

while True:
    start_time = time.time()

    # Your code goes here

    time.sleep(max(repeat_time - (time.time() - start_time), 0.0))

并且您的代码将在每个“repeat_time”执行一次

于 2012-12-10T13:28:59.950 回答
0

您可以使用已经提到的睡眠。但是因为您自己的函数运行所需的时间可能是可变的,这并不一定意味着您的函数每 60 秒运行一次。

如果每次启动函数之间的时间间隔接近 60 秒很重要,则可以使用时间。我还没有尝试过,但是类似

import time

while True:
    # Get the current time 
    startTime = time.time()

    # Your functions
    client = myclient(info1,info2)
    sellor()
    Contractor()

    delay = True
    while delay:
        if time.time() - startTime > 60:
            delay = False # Break the delay
于 2012-12-10T13:31:44.720 回答
0

您可能还会想到只通过 Windows 调度程序来调度任务。这样做的好处是脚本一旦运行就结束,然后在预定的时间间隔后再次执行脚本。在第二种方法中,脚本实例进程似乎会持续运行,并且只使用 sleep 函数在指定时间内什么都不做。如果脚本在任何情况下都失败,我会采用这种方式,您可能必须检查以重新启动脚本。作为计划的活动,脚本将在任何情况下以指定的时间间隔执行。

您可能也不希望进程线程继续运行以执行 python 脚本。我将对此进行研究,与此同时,您可能会听到我们其他人的意见。

问候, 哈沙尔

于 2012-12-10T13:46:41.937 回答