Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算函数输出时间的最简单方法_Python_Multithreading_Logging - Fatal编程技术网

Python 计算函数输出时间的最简单方法

Python 计算函数输出时间的最简单方法,python,multithreading,logging,Python,Multithreading,Logging,我正在访问一个web API,它似乎每隔一段时间就会神秘地挂起。现在我正在使用print做一些简单的日志记录。我不熟悉线程或类似的东西,我希望有一种简单的方法来检查新的print语句返回后的时间,并在达到最大时间间隔时优雅地退出函数。谢谢你的意见 使用time.time()模块以秒为单位获取时间;来自博士 'time()->浮点数\n\n以秒为单位返回当前时间 从纪元开始。\n如果系统 时钟提供了它们。” 在代码中使用它作为 import time tic = time.time() #star

我正在访问一个web API,它似乎每隔一段时间就会神秘地挂起。现在我正在使用print做一些简单的日志记录。我不熟悉线程或类似的东西,我希望有一种简单的方法来检查新的print语句返回后的时间,并在达到最大时间间隔时优雅地退出函数。谢谢你的意见

使用time.time()模块以秒为单位获取时间;来自博士

'time()->浮点数\n\n以秒为单位返回当前时间 从纪元开始。\n如果系统 时钟提供了它们。”

在代码中使用它作为

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将永远不会被初始化以使中断发生——我认为。我缺少什么?必须使用多线程来处理时间延迟。因此,您希望在新线程中生成任务,并在父线程中对标志进行轮询(在主线程和从线程之间共享,从线程更新以指示完成)。很明显,当您的轮询时间超过超时时间时,您可以终止从属线程。我发现没有简单的解决方法!谢谢