Skip to content

Commit

Permalink
Reduce no of retries for no connection to 1 (#199)
Browse files Browse the repository at this point in the history
* Reduce no of retries for no connection to 1

* Switch request properties to be loaded via env vars

* Correction for unit tests

* Correct env naming in config

Co-authored-by: Nemanja Martinovic <nemanja.martinovic@cfa.harvard.edu>
  • Loading branch information
nemanjamart and Nemanja Martinovic committed Sep 4, 2022
1 parent 0b175ff commit e6ea4c0
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 1 deletion.
1 change: 1 addition & 0 deletions .github/workflows/python_actions.yml
Expand Up @@ -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
Expand Down
11 changes: 10 additions & 1 deletion adsws/api/discoverer/views.py
Expand Up @@ -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,
Expand All @@ -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
Expand Down
4 changes: 4 additions & 0 deletions config.py
Expand Up @@ -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

0 comments on commit e6ea4c0

Please sign in to comment.