动态时间休眠,直到新的分钟从 HH:MM:01 秒开始
Dynamic time sleep until new minute starts with HH:MM:01 second
我有一个 python 代码,通常 运行 会在 20 到 48 秒内完成。
目前我在代码后使用 time.sleep(10)
+ with while true & 尝试在 10 秒后 运行 相同的代码。
我的 objective 是使用 time.sleep(dynamic)
以便我的代码在同一时间分钟戳(同一分钟内)的多次迭代可以停止以删除数据值的重复。
例如:
##Let say Code runs at 12:30:01 pm
while True:
try:
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
start = '11:45:01'
end = '18:02:00'
if current_time > start and current_time < end:while True:
Import Code1 ## run first program file
Import Code1 ## run second program file
Time.sleep(3)
else:
print("out of time")
time.sleep(3)
except Exception as e:
print(e)
time.sleep(3)
continue
continue
现在如果代码在 12:30:50 下午完成,那么 time.sleep(remianing second)
应该 = 10.
如果代码在 12:30:57 pm 完成,那么 time.sleep(remianing second)
应该是 = 3.
如果代码在 12:30:40 pm 完成,那么 time.sleep(remianing second)
应该是 = 20.
等等……
在 12:31:01 秒(或之后)重新开始下一次迭代。
您可以通过标记工作开始和结束的时间来休眠必要的剩余时间(最多一分钟),例如
import time
import random
while True:
start_time = time.time()
time.sleep(random.randint(2,5)) # do some work
worked_time = time.time() - start_time
print("worked for", worked_time)
wait_to_align = 60.0 - worked_time % 60.0
print(f"sleep {wait_to_align} to align to a minute")
time.sleep(wait_to_align)
生产
worked for 3.002328634262085
sleep 56.997671365737915 to align to a minute
worked for 5.003056764602661
sleep 54.99694323539734 to align to a minute
...
我有一个 python 代码,通常 运行 会在 20 到 48 秒内完成。
目前我在代码后使用 time.sleep(10)
+ with while true & 尝试在 10 秒后 运行 相同的代码。
我的 objective 是使用 time.sleep(dynamic)
以便我的代码在同一时间分钟戳(同一分钟内)的多次迭代可以停止以删除数据值的重复。
例如:
##Let say Code runs at 12:30:01 pm
while True:
try:
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
start = '11:45:01'
end = '18:02:00'
if current_time > start and current_time < end:while True:
Import Code1 ## run first program file
Import Code1 ## run second program file
Time.sleep(3)
else:
print("out of time")
time.sleep(3)
except Exception as e:
print(e)
time.sleep(3)
continue
continue
现在如果代码在 12:30:50 下午完成,那么 time.sleep(remianing second)
应该 = 10.
如果代码在 12:30:57 pm 完成,那么 time.sleep(remianing second)
应该是 = 3.
如果代码在 12:30:40 pm 完成,那么 time.sleep(remianing second)
应该是 = 20.
等等……
在 12:31:01 秒(或之后)重新开始下一次迭代。
您可以通过标记工作开始和结束的时间来休眠必要的剩余时间(最多一分钟),例如
import time
import random
while True:
start_time = time.time()
time.sleep(random.randint(2,5)) # do some work
worked_time = time.time() - start_time
print("worked for", worked_time)
wait_to_align = 60.0 - worked_time % 60.0
print(f"sleep {wait_to_align} to align to a minute")
time.sleep(wait_to_align)
生产
worked for 3.002328634262085
sleep 56.997671365737915 to align to a minute
worked for 5.003056764602661
sleep 54.99694323539734 to align to a minute
...