【发布时间】:2017-08-12 13:08:26
【问题描述】:
如果给定的迭代花费超过一定的时间,您将如何移动到 for 循环的下一个迭代?代码应该看起来像这样。
for i in range(0, max_iterations):
timer function
call to api
如果 api 尚未完成,计时器函数将用于强制 for 循环继续进行下一次迭代。该迭代应该在 120 秒内工作。定时器函数怎么写?提前谢谢!
【问题讨论】:
-
我不知道 time.sleep(secs) 在这种情况下会有什么用处。如果我将 time.sleep 放在 api 调用之前,程序将等待执行 api 调用。我没有将 time.sleep 放在 api 调用中的选项。
-
消失了是什么意思?我仍然可以看到piro's accepted answer 但是,ATOzTOA's answer 可能更适合您。
-
Jeremy Farrell 在这里发布了一个答案,告诉你使用
time.sleep来做超时。但后来他意识到他误解了你的问题,并改变了他的答案,将你链接到一些你可能会觉得有用的信息。但随后他删除了修改后的答案。我将在下一条评论中重新发布 Jeremy 的链接。 -
Jeremy 说:解决这个问题的一种方法是使用线程。有关使用事件线程的教程,请参阅A basic example of threads synchronization in Python。一般的想法是在一个单独的线程上运行你的调用,每隔一段时间检查一次结果。对于另一种选择,请参阅此答案:stackoverflow.com/a/14924210/2109767。
标签: python python-2.7 timeout