Add timeout in request to xqueue
This commit is contained in:
@@ -15,6 +15,8 @@ XQUEUE_METRIC_NAME = 'edxapp.xqueue'
|
||||
|
||||
# Wait time for response from Xqueue.
|
||||
XQUEUE_TIMEOUT = 35 # seconds
|
||||
CONNECT_TIMEOUT = 3.05 # seconds
|
||||
READ_TIMEOUT = 10 # seconds
|
||||
|
||||
|
||||
def make_hashkey(seed):
|
||||
@@ -134,12 +136,18 @@ class XQueueInterface(object):
|
||||
|
||||
def _http_post(self, url, data, files=None):
|
||||
try:
|
||||
r = self.session.post(url, data=data, files=files)
|
||||
response = self.session.post(
|
||||
url, data=data, files=files, timeout=(CONNECT_TIMEOUT, READ_TIMEOUT)
|
||||
)
|
||||
except requests.exceptions.ConnectionError, err:
|
||||
log.error(err)
|
||||
return (1, 'cannot connect to server')
|
||||
|
||||
if r.status_code not in [200]:
|
||||
return (1, 'unexpected HTTP status code [%d]' % r.status_code)
|
||||
except requests.exceptions.ReadTimeout, err:
|
||||
log.error(err)
|
||||
return (1, 'failed to read from the server')
|
||||
|
||||
return parse_xreply(r.text)
|
||||
if response.status_code not in [200]:
|
||||
return (1, 'unexpected HTTP status code [%d]' % response.status_code)
|
||||
|
||||
return parse_xreply(response.text)
|
||||
|
||||
Reference in New Issue
Block a user