如果我有一个无限while循环,我怎么能让循环在循环迭代开始后每10分钟运行一次下一次迭代?
如果第一次迭代在凌晨1:00开始并在凌晨1点09分结束,则下一次迭代应该在凌晨1:10运行,而不是等待另外10分钟(如下面的代码片段中所示).如果循环迭代运行超过10分钟,则下一次迭代应立即运行并开始倒计时10分钟.
while(True):
someLongProcess() # takes 5-15 minutes
time.sleep(10*60)
Run Code Online (Sandbox Code Playgroud)
例
Loop 1: Starts 1:00am, ends 1:09am
Loop 2: Start 1:10am, ends 1:25am # ends 5 minutes later
Loop 3: Starts 1:25am, ends 1:30am # ends 5 minutes earlier
Loop 4: Starts 1:35am, ends 1:45am
Run Code Online (Sandbox Code Playgroud)
记住开始时间,用它计算睡眠时间.
while True:
start = time.time()
some_long_process()
end = time.time()
remain = start + 10*60 - end
if remain > 0:
time.sleep(remain)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1724 次 |
| 最近记录: |