2012-10-24 3 views
5

노드 + 익스프레스 앱에서 막대한 양의 데이터를 app.get ("/ importdata", 콜백)을 통해 가져 오려고합니다. 시간 제한이 초과되고 요청이 완료되지 않으면 요청을 다시 재생하고 서버가 동일한 데이터를 다시 가져 오기 시작합니다.노드 타임 익스프레스가 서버 타임 아웃 후 요청을 다시 재생합니다.

연결 시간 초과 후 요청이 재생되는 정확한 이유를 찾을 수 없습니까?

내 timeOut 기간을 거대한 숫자로 설정하면 문제가 해결되지만 요청이 다시 재생되는 이유를 정확히 이해하지 못하고 있습니까?

미리 감사드립니다. 내 콘솔

impstore ---------------> 사용자 ID 타임 스탬프 수요일 10월 24일에서 내 server.js

app.get('/impdata', function(req, res){ 
req.connection.setTimeout(600000); 
console.log("impstore--------------->"); 
    Q.when(getData(req.data), function(resp){ 
     res.json(resp); 
    }); }); 

조각에서

조각 2012 그리니치 표준시 16시 35분 28초 + 0530 (IST) 리스팅있어 100 사용자 ID IMS 1 타임 스탬프 재귀 리스팅 IMS 1 타임 스탬프 REC 200 사용자 ID를 가지고 ursive 리스팅 IMS 1 타임 스탬프 재귀 리스팅 400 아이디 IMS있어 300 아이디를 가지고 1 개 타임 스탬프 재귀 목록있어 500 아이디 IMS 1 개 타임 스탬프 재귀 목록있어 600 아이디 IMS 1 시간 스탬프 재귀 목록이 700 사용자 ID ims 1 시간 스탬프 재귀 목록이 800 사용자 ID,451,515,IMS 1 타임 스탬프 재귀 리스팅 900 사용자 ID IMS 1 타임 스탬프 재귀 impstore ---------------> 사용자 ID를 가지고 타임 스탬프 수요일 2012년 10월 24일 16시 37분 : 사용자 ID IMS 1 타임 스탬프 재귀 리스팅있어 100 사용자 ID IMS 1000있어 리스팅 (28) GMT + 0530 (IST) 1

가 정보 : 나는 100 의 덩어리로 데이터를 얻고 난 900 데이터를 수신 목록 및 서버 시간이 초과되었지만 콘솔에서 볼 수 있듯이 요청은 마지막 2 세트를 다시 확인합니다. 첫 번째는 다음 100을 표시합니다. ie 즉 1000 개의 목록이 증가하고 두 번째 목록은 100이라고 표시되고 전체 프로세스가 완료되면 2 개의 비슷한 대상이있다.

잘 설명해 주셨으면합니다.

+2

일부 코드 (최소한의 테스트 케이스가 바람직 함)를 보여줘야합니다. – ebohlman

+0

일부 코드 (최소한의 테스트 케이스가 바람직 함)를 보여줘야합니다. – ebohlman

+0

클라이언트 측에서 재전송하지 않았습니까? – JohnnyHK

답변

0

동일한 문제가 있습니다. 나는 HTTP 프로토콜 사양에 따라 HTTP 클라이언트가 제한 시간 후에 요청을 다시 보낼 수 있다고 설명하는 스택 오버플로에서 또 다른 대답을 보았습니다. express의 경우 기본 서버 시간 초과는 2 분 (https://nodejs.org/api/all.html#http_server_settimeout_msecs_callback)입니다.

브라우저에서 해당 끝점에 액세스하는 경우 해당 될 수 있습니다.

나는이 괴괴 망측 함을 이해합니다. 유령이 당신에게 동일한 요청을 다시 보내는 것처럼 보입니다. 요청을 다시 보내는 클라이언트가 없는지 다른 사람이 반복해서 묻습니다.

다른 답변을 찾으면이 고스트 동작에 대한 더 자세한 설명을 볼 수 있습니다.