Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.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 如何解决10054错误_Python_Connection_Response - Fatal编程技术网

Python 如何解决10054错误

Python 如何解决10054错误,python,connection,response,Python,Connection,Response,我正在使用某个网站提供的应用程序定期从该网站收集一些数据,比如说,每次30秒。 然后将返回的响应记录在数据库中 我使用模块化的请求来导入请求并编写代码来捕获异常。 主要功能的代码如下所示: def get_response(self): try: response = requests.get(self.request_url) if response.status_code == 200: return response.json()

我正在使用某个网站提供的应用程序定期从该网站收集一些数据,比如说,每次30秒。 然后将返回的响应记录在数据库中

我使用模块化的请求来导入请求并编写代码来捕获异常。 主要功能的代码如下所示:

def get_response(self):
    try:
       response = requests.get(self.request_url)
       if response.status_code == 200:
          return response.json()
       except Exception as e:
          msg = "Exception is:\n %s \n" % e
          print msg
上述功能在最初的几个小时内运行良好。 该函数还可以从一些异常中恢复,例如: ('Connection aborted.',BadStatusLine('',)
或 (“连接中止”,错误(10053,)) 它省略了异常(通过在数据库中记录一个空值),并继续获取下一个周期的响应

但是,当遇到10054错误时,该函数停止工作

Exception is:
 ('Connection aborted.', error(10054, '')) 
我检查数据库,发现在10054错误出现之后,所有响应都是空的。 我首先猜测该网站可能会崩溃,因此没有收到回复。 但是当我手动重新启动函数时,它又开始得到响应。 所以这与网站的崩溃无关

我在stackoverflow中搜索并发现:Errno 10054远程主机强制关闭了一个现有连接。 但我不知道如何解决它

你能提供一些解决这个问题的方法吗?(理想地说) 或者提供一些解决方案来重新启动功能,而无需手动重新启动? (看起来,一旦我重新启动功能,它就会再次工作。)


提前感谢。

web服务器主动拒绝您的连接。这通常是因为它拥挤、具有速率限制或认为您正在发起拒绝服务攻击。如果您是从服务器获取此信息的,则在重试之前应该先睡一会儿。事实上,如果您在重试之前不睡觉,您就是拒绝服务攻击。礼貌的做法是实施渐进式睡眠,比如,(1,2,4,8,16,32)秒。

感谢您的详细解释。但您的答案仍然是一个问题:为什么手动重新启动程序时,即使函数自动启动访问请求的时间与之后手动重新启动函数的时间间隔很小,它仍然有效?谢谢。你解决那个问题了吗?