【问题标题】:Most efficient way to check if a session is still valid/handle connectionError?检查会话是否仍然有效/处理连接错误的最有效方法?
【发布时间】:2016-06-28 08:24:34
【问题描述】:

如何检查 Python 3.5 中的 Session 是否仍能处理 get() 请求?当人们为多个请求重用同一个 Session 时,是否有一个标准程序可以用来检查这个问题?

具体来说,我想尽可能高效地处理ConnectionErrors;我必须编写假定尽可能高性能的代码。

我想尽可能有效地避免或管理的错误示例:

  File "C:\Anaconda3\lib\site-packages\requests\sessions.py", line 480, in get
    return self.request('GET', url, **kwargs)
  File "C:\Anaconda3\lib\site-packages\rauth\session.py", line 210, in request
    return super(OAuth1Session, self).request(method, url, **req_kwargs)
  File "C:\Anaconda3\lib\site-packages\requests\sessions.py", line 468, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Anaconda3\lib\site-packages\requests\sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "C:\Anaconda3\lib\site-packages\requests\adapters.py", line 426, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))

【问题讨论】:

    标签: python python-3.x session python-requests python-3.5


    【解决方案1】:

    最好捕获requests 引发的异常并优雅地处理它们(请参阅here),使用timeout values 并可能使用适合您的用例的重试策略,并使用模拟@ 进行单元测试987654323@。不知道您对高效管理还有什么意思。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-02
      • 2014-05-02
      • 2018-06-30
      • 2016-04-18
      • 2012-10-29
      • 2013-10-29
      • 2013-06-24
      • 1970-01-01
      相关资源
      最近更新 更多