두 개의 서버가있는 웹 사이트가 있습니다. 하나는 클라이언트 측 웹 서비스 전용이고 다른 하나는 비싸 데이터 처리 서버입니다.Python 요청 : 재시도 허용
나는 현재 프로세스를 보유하고있는 웹 서버 연락처 일반적으로 다음과 같이 여러 요청에 대한 데이터 서버 :
payload = {'req_type':'data_processing', 'sub_type':'data_crunch', 'id_num':12345}
r = requests.get('https://data.mywebsite.com/_api_route', params = payload)
... 과거의 좋은 부분에 대한 시계처럼 실행되었습니다 년. 그러나 데이터 서버에 pandas-heavy 함수를 만든 후에 나는 다음과 같은 오류가 발생했습니다 (팬더와 관련이 없다는 것을 상상할 수는 없지만 어쨌든 그것을 버릴 것이라고 생각했습니다) :
HTTPSConnectionPool(host='data.mywebsite.com', port=443):
Max retries exceeded with url: /_api_route?......
(Caused by <class 'httplib.BadStatusLine'>: '')
두 서버 모두 우분투, 파이썬 및 요청 라이브러리를 사용하여 서버 간의 통신을 처리합니다.
여기에 비슷한 질문이 있습니다. Max retries exceeded with URL - OP가 제어 권한이없는 서버에 문의하는 중입니다. 양면 코드를 작성할 수 있으므로 데이터 서버에서 변경할 수 있기를 바랍니다. 하지만 그것이 무엇이 될지 확실하지 않습니다.
질문을 데이터 처리 서버의보기에 대한 return 문과 함께 업데이트하십시오. 코드에 오류가 있거나 명시 적으로 응답의 상태를 설정하지 않은 경우에는 200으로 설정해야합니다. 추측 할 수없는 경우보기에 오류가 있지만 로그에 매우 분명해야합니다.거기에 아무런 오류가 없다면 데이터를 ['curl -v'] (http://stackoverflow.com/a/7173011/5854907)로 심층 처리 서버로 보내려고합니다. 그러면 응답을 정확히 볼 수 있습니다 입니다. –
@AllieFitter - 아이디어에 감사드립니다. 우리는 컬 요청을 모방하기 위해'서브 프로세스 (subprocess) '를 실행했고 이것은 문제 해결 프로세스에서 도움이되었습니다. 그러나 실제 문제는 웹 서버에서 데이터 서버로 진행되는 동시 요청 수입니다. 단일 요청도 문제가되지 않았지만 여러 동시 요청으로 인해 문제가 발생했습니다. 이후 jQuery 스크립트에서 0.5 초 지연을 추가하고 모든 것이 잘 작동하는 것 같습니다. – pshep123