我正在使用 Python 来访问有时需要很长时间才能运行(超过 5 分钟)的 REST API。我正在使用 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 分钟后超时。
如何让我的脚本等待更长的时间,直到请求返回?