Specify remote server read timeout

Avoid hanging requests to Launchpad by specifying read timeout.
A new config param 'read_timeout' is introduced, defaults to 120 sec.

Change-Id: I32a68e482bfe53845b7c918c3770171ebaea2437
This commit is contained in:
Ilya Shakhat 2015-11-05 15:13:13 +03:00
parent 803d7a4388
commit b33acedadc
4 changed files with 10 additions and 1 deletions

View File

@ -11,6 +11,7 @@ usage: stackalytics-processor [-h] [--config-dir DIR] [--config-file PATH]
[--members-look-ahead MEMBERS_LOOK_AHEAD]
[--nodebug] [--nouse-syslog]
[--nouse-syslog-rfc-format] [--noverbose]
[--read-timeout READ_TIMEOUT]
[--review-uri REVIEW_URI]
[--runtime-storage-uri RUNTIME_STORAGE_URI]
[--sources-root SOURCES_ROOT]
@ -69,6 +70,8 @@ optional arguments:
--nouse-syslog-rfc-format
The inverse of --use-syslog-rfc-format
--noverbose The inverse of --verbose
--read-timeout READ_TIMEOUT
Number of seconds to wait for remote response
--review-uri REVIEW_URI
URI of review system
--runtime-storage-uri RUNTIME_STORAGE_URI

View File

@ -124,6 +124,9 @@
# How many member profiles to look ahead after the last (integer value)
#members_look_ahead = 250
# Number of seconds to wait for remote response (integer value)
#read_timeout = 120
# The address dashboard listens on (string value)
#listen_host = 127.0.0.1

View File

@ -50,6 +50,8 @@ PROCESSOR_OPTS = [
help='URI for default data'),
cfg.IntOpt('members-look-ahead', default=250,
help='How many member profiles to look ahead after the last'),
cfg.IntOpt('read-timeout', default=120,
help='Number of seconds to wait for remote response'),
]
DASHBOARD_OPTS = [

View File

@ -121,7 +121,8 @@ def _session_request(session, uri, method):
session.mount('file://', requests_file.FileAdapter())
user_agent = random.choice(user_agents)
return session.request(method, uri, headers={'User-Agent': user_agent})
return session.request(method, uri, headers={'User-Agent': user_agent},
timeout=cfg.CONF.read_timeout)
def do_request(uri, method='get', session=None):