diff options
author | Joffrey F <joffrey@docker.com> | 2016-09-12 17:43:50 -0700 |
---|---|---|
committer | Joffrey F <joffrey@docker.com> | 2016-09-16 11:55:08 -0700 |
commit | 64fba723ddd1f186548a3a7f49ca952265ac1121 (patch) | |
tree | d5b0d43f1c83d38b2c0d41cb955a77eeb94a4b62 /docker/transport/unixconn.py | |
parent | 06b6a62faab560ce7f07084d63294261db8bbca8 (diff) | |
download | docker-py-1.10.3-release.tar.gz |
Number of pools in adapter is configurable1.10.3-release
Default increased from 10 to 25
Signed-off-by: Joffrey F <joffrey@docker.com>
Diffstat (limited to 'docker/transport/unixconn.py')
-rw-r--r-- | docker/transport/unixconn.py | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/docker/transport/unixconn.py b/docker/transport/unixconn.py index e09b6bf..b7905a0 100644 --- a/docker/transport/unixconn.py +++ b/docker/transport/unixconn.py @@ -2,6 +2,8 @@ import six import requests.adapters import socket +from .. import constants + if six.PY3: import http.client as httplib else: @@ -12,6 +14,7 @@ try: except ImportError: import urllib3 + RecentlyUsedContainer = urllib3._collections.RecentlyUsedContainer @@ -32,28 +35,31 @@ class UnixHTTPConnection(httplib.HTTPConnection, object): class UnixHTTPConnectionPool(urllib3.connectionpool.HTTPConnectionPool): - def __init__(self, base_url, socket_path, timeout=60): + def __init__(self, base_url, socket_path, timeout=60, maxsize=10): super(UnixHTTPConnectionPool, self).__init__( - 'localhost', timeout=timeout + 'localhost', timeout=timeout, maxsize=maxsize ) self.base_url = base_url self.socket_path = socket_path self.timeout = timeout def _new_conn(self): - return UnixHTTPConnection(self.base_url, self.socket_path, - self.timeout) + return UnixHTTPConnection( + self.base_url, self.socket_path, self.timeout + ) class UnixAdapter(requests.adapters.HTTPAdapter): - def __init__(self, socket_url, timeout=60): + def __init__(self, socket_url, timeout=60, + num_pools=constants.DEFAULT_NUM_POOLS): socket_path = socket_url.replace('http+unix://', '') if not socket_path.startswith('/'): socket_path = '/' + socket_path self.socket_path = socket_path self.timeout = timeout - self.pools = RecentlyUsedContainer(10, - dispose_func=lambda p: p.close()) + self.pools = RecentlyUsedContainer( + num_pools, dispose_func=lambda p: p.close() + ) super(UnixAdapter, self).__init__() def get_connection(self, url, proxies=None): |