Heroku가 HTTP 응답을 잘랐습니까?
저는 Heroku Cedar dyno에서 Flask/Gunicorn Python 앱을 실행하고 있습니다.앱이 반환되다JSON responses
고객님께 (그것은API server
정말입니다).
가끔 클라이언트는 0바이트 응답을 받습니다.하지만 반품하는 건 제가 아닙니다.다음은 내 앱 로그의 일부입니다.
3월 14일 13:31 d.0b1adf0a-0597-4f5c-8901-8901-dfe7cda900 app[ web . 1 ][ 2013 - 03 - 14 13 : 13 : 31 UTC ]104 . 41 . v - api _ get _ balance _ ( ) : session _ balance = [ ]마스크됨]
위의 첫 번째 줄은 제가 요청을 처리하기 시작하는 것입니다.
3월 14일 13:31 d.0b1adf0a-0597-4f5c-8901-dfe7cda9bce0 app[web.1] [2013-03-14 13:31 UTC] 10.104.41.136 api_get_credits_balance()가 반환됩니다.[ 0 . credits ]
두 번째 줄은 값을 반환하는 것입니다(Flask에 대한 "Response" 객체).
3월 14일 13:31 d.0b1adf0a-0597-4f5c-8901-dfe7cda9bce0 app[web.1] 10.104.41.136 - [ 14/Mar/2013:13:31] "POST/get_credits_balance?"session_sessions=MASKED HTTP/1.1" 200 22 "-" "액셀러레이터 티타늄/3.0.0.GA(iPhone/6.1.2, iPhone OS, en_US;)
세 번째 줄은 Gnicorn의 것으로 Gunicorn이 200의 상태와 22바이트의 HTTP 본문(')을 가지고 있음을 알 수 있습니다.200 22
").
그러나 클라이언트는 0바이트를 받았습니다.다음은 Heroku 라우터 로그입니다.
3월 14일 13시 30분 d.0b1adf0a-0597-4f5c-8901-dfe7cda900 heerku[ ]at=info method=POST 경로=/get_balance_balance?session_sessions=MASKED host=matchspot-apisrv.herokuapp.com fwd="66.87.120.128" dyno=web.1 큐=0 wait=0 ms connect=1 ms service=19 ms status=200 바이트=0
왜 Gunicorn은 22바이트를 반환하는데 Heroku는 0을 보고 실제로 0바이트를 클라이언트에 반환합니까?이게 헤로쿠 벌레인가요?
내가 여기서 좀 이상하다고 생각될 수도 있다는 것을 알지만 다른 선택사항이 있다.
우리는 운송 중에 가끔 버그가 발생한다는 것을 알고 있습니다.우리는 이 문제를 막기 위해 우리가 지금 당장 할 수 있는 일이 많지 않다는 것을 알고 있다.API만 제공하는 경우 읽기를 중지하고 클라이언트도 작성하면 계속 진행합니다.
에러는 기존의 케이스이며, 기존의 원인.반환값이 비어 있는 것은 뭔가 잘못되었다는 것을 의미합니다.그러나 값은 사용할 수 있으며 가져오거나 계산하거나...개발자로서 저의 본능은 빈 결과를 HTTP 오류로 처리하여 데이터 재전송을 요청하는 것입니다.그런 다음 재발송 요청을 추적하고 이러한 빈도를 확인할 수 있습니다.
(이것도 생각할 수 있는 개발자로 생각됩니다만) 요청을 카운트하여 사용자에게 "네트워크 오류"에 응답할 수 있는 적절한 값을 설정하는 것이 좋습니다.내 본능은 바로 다시 시도하고 나서 조금 더 시도하기 전에 기다리는 것이다.
설명하신 내용에 따르면 첫 번째 재시도에서는 데이터가 올바르게 수집될 수 있습니다.물론 이는 오래된 요청을 캐시에 몇 분 동안 보관하거나 가장 적절하다고 생각되는 요청에 따라 요청을 다시 실행하는 것을 의미합니다.
이는 또한 다른 포인트 투 포인트 네트워킹 오류를 우회하여 연결 문제가 발생하더라도 앱이 훨씬 더 강력해집니다.
개발자로서의 우리의 본능은 알려진 결함을 수정하는 것이지만 때로는 결함에도 불구하고 작동할 수 있는 시스템을 지향하는 것이 더 나을 수 있습니다.즉, 오류와 문제를 기록하고 수정하는 것이 나쁠 것은 없다고 합니다.
언급URL : https://stackoverflow.com/questions/15411498/heroku-truncates-http-responses
'programing' 카테고리의 다른 글
연간 월별 그룹 쿼리 방법 (0) | 2023.03.25 |
---|---|
함수의 반환 유형 가져오기 (0) | 2023.03.25 |
데이터와 파일을 포함한 JSON을 Web API에 게시합니다(jQuery / MVC). (0) | 2023.03.20 |
React.js의 div와 함께 onClick을 사용하는 방법 (0) | 2023.03.20 |
투고 ID에서 카테고리 이름 가져오기 (0) | 2023.03.20 |