gpt4 book ai didi

Python - 使用 UTC 时间每 5 秒 block 运行一次代码

转载 作者:太空宇宙 更新时间:2023-11-04 04:46:22 25 4
gpt4 key购买 nike

我正在尝试运行一组代码,这些代码从 UTC 时间起正好在 5 秒 block 内开始,从偶数分钟开始。

例如,它会准确地执行每个样本:

11:20:45
11:20:50
11:20:55
11:21:00
11:21:05
11:21:10

我希望无论代码块的执行时间如何,如果运行代码是即时的或 3 秒,我仍然希望以 5 秒的 UTC 时间间隔执行。

虽然我认为 datetime.datetime.utcnow().timestamp() - (datetime.datetime.utcnow().timestamp() % 5.0) + 5 给我下一个即将到来的开始时间?

最佳答案

您可以使用 python 的 scheduler模块:

from datetime import datetime
import sched, time

s = sched.scheduler(time.time, time.sleep)

def execute_something(start_time):
print("starting at: %f" % time.time())
time.sleep(3) # simulate a task taking 3 seconds
print("Done at: %f" % time.time())
# Schedule next iteration
next_start_time = start_time + 5
s.enterabs(next_start_time, 1, execute_something, argument=(next_start_time,))

next_start_time = round(time.time() + 5, -1) # align to next to 10sec
s.enterabs(next_start_time, 1, execute_something, argument=(next_start_time,))
print("Starting scheduler at: %f" % time.time())
s.run()


# Starting scheduler at: 1522031714.523436

# starting at: 1522031720.005633
# Done at: 1522031723.008825

# starting at: 1522031725.002102
# Done at: 1522031728.005263

# starting at: 1522031730.002157
# Done at: 1522031733.005365

# starting at: 1522031735.002160
# Done at: 1522031738.005370

关于Python - 使用 UTC 时间每 5 秒 block 运行一次代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49482784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com