如何每 n 秒调用一次函数?

时间:2021-03-23 16:22:41

标签: python python-3.x

如果我这样做:

def my_api_query():
    pass

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

这类似于 my_api_query() 的执行时间加上 5 秒,这比 5 秒长。

我希望每 5 秒执行一次迭代。

如何在 Python 3 中实现它?

2 个答案:

答案 0 :(得分:0)

我想我找到了一个解决方案,需要测试一下,欢迎提供任何其他建议:

import threading

def my_api_query():
  threading.Timer(5.0, my_api_query).start()
  some code

my_api_query()

答案 1 :(得分:0)

另一种解决方案非常笨拙,但应该有效

import time
nexttime = time.time()
while True:
    my_api_query()          # take t sec
    nexttime += 10
    sleeptime = nexttime - time.time()
    if sleeptime > 0:
        time.sleep(sleeptime)
相关问题