如何解决10054错误

Dee*_*fox 7 python connection response

我正在使用某个网站提供的应用程序定期从网站上收集一些数据,比如每次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
Run Code Online (Sandbox Code Playgroud)

上面的功能在前几个小时内运行良好.该函数还可以从以下一些例外中恢复:('连接中止.',BadStatusLine("''",))
或('连接中止.',错误(10053,''))它省略了异常(通过记录在数据库中为空并且继续获得下一期的响应.

但是,在绑定10054错误时,该功能停止工作.

Exception is:
 ('Connection aborted.', error(10054, '')) 
Run Code Online (Sandbox Code Playgroud)

我检查数据库,发现在10054错误发生之后所有响应都是空的.我首先猜测网站可能会崩溃,因此没有收到回复.但是当我手动重启该功能时,它会再次开始响应.所以这与网站的细分无关.

我在stackoverflow中搜索并找到:Errno 10054远程主机强行关闭现有连接.但我不知道如何解决它.

你能否解决这个问题?(理想情况下)或提供一些解决方案来重启功能而无需手动重启?(看起来我重新启动功能后再次运行.)

提前致谢.

tde*_*ney 10

Web服务器主动拒绝您的连接.这通常是因为它拥挤,速率限制或认为您正在发起拒绝服务攻击.如果你从服务器得到这个,你应该再睡一会儿再试一次.事实上,如果您在重试之前没有睡觉,那么您就是拒绝服务攻击.礼貌的事情是实施渐进式睡眠,比如(1,2,4,8,16,32)秒.

  • 然而你的答案仍然是一个问题:为什么当手动重启程序时,即使在函数自动启动访问请求的时间与我之后手动重启函数的时间之间的时间间隔很小,它是否也能正常工作?谢谢. (4认同)