diff --git a/.github/workflows/python_actions.yml b/.github/workflows/python_actions.yml index 143eeab..b2ec238 100644 --- a/.github/workflows/python_actions.yml +++ b/.github/workflows/python_actions.yml @@ -64,6 +64,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade setuptools pip + git config --global url."https://".insteadOf git:// pip install -U -r requirements.txt pip install -U -r dev-requirements.txt diff --git a/adsws/api/discoverer/views.py b/adsws/api/discoverer/views.py index 7b9e094..124da26 100644 --- a/adsws/api/discoverer/views.py +++ b/adsws/api/discoverer/views.py @@ -18,9 +18,15 @@ def __init__(self, endpoint, service_uri, deploy_path, route): self.cs = None try: self.default_request_timeout = current_app.config.get("DEFAULT_REQUEST_TIMEOUT", 60) + self.pool_connections = current_app.config.get("REQUESTS_POOL_CONNECTIONS", 20) + self.pool_maxsize = current_app.config.get("REQUESTS_POOL_MAXSIZE", 1000) + self.max_retries = current_app.config.get("REQUESTS_MAX_RETRIES", 1) except RuntimeError: # Unit testing fails: "RuntimeError: Working outside of application context." self.default_request_timeout = 60 + self.pool_connections = 20 + self.pool_maxsize = 1000 + self.max_retries = 1 if service_uri.startswith('consul://'): self.cs = ConsulService( service_uri, @@ -40,7 +46,10 @@ def __init__(self, endpoint, service_uri, deploy_path, route): # requests sessions) # http://docs.python-requests.org/en/latest/api/?highlight=max_retries#requests.adapters.HTTPAdapter # - http_adapter = requests.adapters.HTTPAdapter(pool_connections=20, pool_maxsize=1000, max_retries=3, pool_block=False) + http_adapter = requests.adapters.HTTPAdapter(pool_connections=self.pool_connections, \ + pool_maxsize=self.pool_maxsize, \ + max_retries=self.max_retries, \ + pool_block=False) self.session.mount('http://', http_adapter) @staticmethod diff --git a/config.py b/config.py index c783c72..8d3bd47 100644 --- a/config.py +++ b/config.py @@ -17,3 +17,7 @@ # Flask session config (http://flask.pocoo.org/docs/0.12/config/) PERMANENT_SESSION_LIFETIME = 3600*24*365.25 # 1 year in seconds SESSION_REFRESH_EACH_REQUEST = True + +REQUESTS_POOL_CONNECTIONS=20 +REQUESTS_POOL_MAXSIZE=1000 +REQUESTS_MAX_RETRIES=1