Python을 사용하여 실행하는 데 오랜 시간이 걸리는 (5 분 이상) REST API에 액세스하고 있습니다. 내가 요청을 만들기 위해 pyelasticsearch를 사용하고,이 같은 10 분으로 시간 제한 설정을 시도 :파이썬에서 HTTP 요청을 만들고 응답 시간이 오래 걸린다
es = ElasticSearch(config["es_server_url"], timeout=600)
results = es.send_request("POST",
[config["es_index"], "_search_with_clusters" ],
cluster_query)
을하지만 시간이 초과 requests.exceptions.ConnectionError (Caused by <class 'socket.error'>: [Errno 104] Connection reset by peer)
와 오분 (안 10) 후 나는 소켓을 설정하려 시간 초과 및 다음과 같은 요청을 직접 사용하십시오.
socket.setdefaulttimeout(600)
try:
r = requests.post(url, data=post, timeout=600)
except:
print "timed out"
그리고 약 5 분마다 매번 시간 초과됩니다.
요청이 반환 될 때까지 스크립트를 더 오래 기다리게하려면 어떻게해야합니까?
그 오류는 서버가 사용자의 소켓을 닫았습니다. 따라서 더 이상 시간 초과를 지정하면 도움이되지 않습니다. (당신이 실제로 말하고있는 회사 웹 프록시가 타임 아웃을 가지고 있거나, 중간에있는 일부 라우터가 당신을 차단하기로 결정했다는 것을 의미 할 수도 있습니다. 그러나 당신의 코드 타임 아웃은 불가능합니다.) 서버 코드, 또는 다른 사람의 코드? – abarnert
예, 제 서버입니다. 팁 고마워. 나는 실제 서버 이름 : port에 직접 요청을 시도하고 8.5 분 후에 성공했다. 5 분 후에 연결을 닫는 것은 BigIP였습니다. – kielni