gpt4 book ai didi

python - 6 分钟后重新启动脚本

转载 作者:太空宇宙 更新时间:2023-11-04 03:27:45 26 4
gpt4 key购买 nike

我想在 Python 中创建一个 for 循环,它会在 6 分钟后自行重启,或者直到循环完成 500 次。

也许我可以在脚本开头应用一个命令,使其在 6 分钟后重新启动。

我的脚本是:

if len(sys.argv) < 2:
# something
sys.exit()
else:
if sys.argv[1]=="help":
# something
sys.exit()
else:
print "start"
if len(sys.argv)== 3:
if sys.argv[2]=="safe":
set_safe()
url = sys.argv[1]
if url.count("/")==2:
url = url + "/"
m = re.search('http\://([^/]*)/?.*', url)
host = m.group(1)
for i in range(500):
# something

我应该怎么做?

最佳答案

以下方法应该可行,它首先计算 future 6 分钟,然后启动您的“脚本”执行 500 次。然后它只是在一个循环中等待,直到达到唤醒时间。所以你的脚本可以花费任何时间。如果需要更长的时间,那么下一个 500 将立即开始。

import time

wakeup = time.time()

while True:
wakeup += 6 * 60

for i in range(500):
# something

# Has it taken longer the 6 minutes?
if time.time() > wakeup:
break

while time.time() < wakeup:
time.sleep(1)

您可以将 sleep(1) 值更改为任何您想要的值,例如5. 它不会影响整体速率,只是意味着下一次迭代将在 6 分钟后的 5 秒内开始,而不是 6 分钟后的 1 秒内开始(如果这有意义的话)。

尝试以下演示版本:以下版本每 6 秒(而不是分钟)运行一次,并尝试执行 for 循环 20 次。我每次迭代将其减慢 0.5 秒以模拟工作。

import time

wakeup = time.time()

while True:
wakeup += 6
print "start",

for i in range(20):
time.sleep(0.5) # simulate work
print i,

if time.time() > wakeup:
break

print "finished"

while time.time() < wakeup:
time.sleep(1)

您将看到以下输出:

start 0 1 2 3 4 5 6 7 8 9 10 11 12 finished
start 0 1 2 3 4 5 6 7 8 9 10 finished
start 0 1 2 3 4 5 6 7 8 9 10 11 finished

如您所见,循环在 6 秒结束时中止,在完成所有 20 次迭代之前中止,然后重新启动。

关于python - 6 分钟后重新启动脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32314712/

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