In requests library, how can I avoid “HttpConnectionPool is full, discarding connection” warning?

后端 未结 2 446
长发绾君心
长发绾君心 2021-02-07 06:47

I\'m using python requests library with sessions:

def _get_session(self):
    if not self.session:
        self.session = requests.Session()
    return self.sess         


        
2条回答
  •  盖世英雄少女心
    2021-02-07 07:17

    From Requests docs in http://docs.python-requests.org/en/latest/api/

     class requests.adapters.HTTPAdapter(pool_connections=10, pool_maxsize=10, max_retries=0, pool_block=False)
    

    The built-in HTTP Adapter for urllib3.

    Provides a general-case interface for Requests sessions to contact HTTP and HTTPS urls by implementing the Transport Adapter interface. This class will usually be created by the Session class under the covers.

    Parameters:

    • pool_connections – The number of urllib3 connection pools to cache.
    • pool_maxsize – The maximum number of connections to save in the pool.
    • max_retries (int) – The maximum number of retries each connection should attempt. Note, this applies only to failed connections and timeouts, never to requests where the server returns a response.
    • pool_block – Whether the connection pool should block for connections.

    and a little below, comes an example

    import requests
    s = requests.Session()
    a = requests.adapters.HTTPAdapter(max_retries=3)
    s.mount('http://', a)
    

    Try this

    a = requests.adapters.HTTPAdapter(pool_connections = N, pool_maxsize = M)
    

    Where N and M are suitable for your program.

提交回复
热议问题