Python 计算函数输出时间的最简单方法
我正在访问一个web API,它似乎每隔一段时间就会神秘地挂起。现在我正在使用print做一些简单的日志记录。我不熟悉线程或类似的东西,我希望有一种简单的方法来检查新的print语句返回后的时间,并在达到最大时间间隔时优雅地退出函数。谢谢你的意见 使用time.time()模块以秒为单位获取时间;来自博士 'time()->浮点数\n\n以秒为单位返回当前时间 从纪元开始。\n如果系统 时钟提供了它们。” 在代码中使用它作为Python 计算函数输出时间的最简单方法,python,multithreading,logging,Python,Multithreading,Logging,我正在访问一个web API,它似乎每隔一段时间就会神秘地挂起。现在我正在使用print做一些简单的日志记录。我不熟悉线程或类似的东西,我希望有一种简单的方法来检查新的print语句返回后的时间,并在达到最大时间间隔时优雅地退出函数。谢谢你的意见 使用time.time()模块以秒为单位获取时间;来自博士 'time()->浮点数\n\n以秒为单位返回当前时间 从纪元开始。\n如果系统 时钟提供了它们。” 在代码中使用它作为 import time tic = time.time() #star
import time
tic = time.time() #start
while True:
do_big_job()
toc = time.time();
if ( toc - tic > timeout ):
break
您是如何发送这些请求的
urllib2
和requests
都实现了超时(我知道requests
确实实现了超时)。我看到了FTP协议处理程序的“urllib2.setTimeout(self,t)”方法。它是一个特定于API的库——没有请求那么通用。我没有在其中找到超时方法。好建议;谢谢谢谢,但我还是很困惑。。。在这种情况下,do_big_job()将挂起,并且toc将永远不会被初始化以使中断发生——我认为。我缺少什么?必须使用多线程来处理时间延迟。因此,您希望在新线程中生成任务,并在父线程中对标志进行轮询(在主线程和从线程之间共享,从线程更新以指示完成)。很明显,当您的轮询时间超过超时时间时,您可以终止从属线程。我发现没有简单的解决方法!谢谢