Я использую Python для доступа к REST API, который иногда занимает много времени (более 5 минут). Я использую pyelasticsearch для выполнения запроса и попытался установить тайм-аут на 10 минут следующим образом:
es = ElasticSearch(config["es_server_url"], timeout=600)
results = es.send_request("POST",
[config["es_index"], "_search_with_clusters" ],
cluster_query)
но время ожидания истекает через 5 минут (не 10) с requests.exceptions.ConnectionError (Caused by <class 'socket.error'>: [Errno 104] Connection reset by peer)
Я попытался установить тайм-аут сокета и использовать запросы напрямую следующим образом:
socket.setdefaulttimeout(600)
try:
r = requests.post(url, data=post, timeout=600)
except:
print "timed out"
и время ожидания истекает примерно через 5 минут каждый раз.
Как я могу заставить мой скрипт ждать дольше, пока запрос не вернется?