클라이언트에 응답하기 위해 120 초 이상 소요되는 NodeJS Express 서버로 요청을 보낼 때마다 요청 시간 초과 오류가 발생합니다.서버가 120 초 이상 요청을 처리 할 때 노드 익스프레스 서버 연결 시간 초과가 발생했습니다.
request.setTimeOut(200000);
으로 서버 시간 초과를 시도했지만 localhost ..에서 액세스했을 때만 작동하고 IP 주소를 철저히 시간 초과합니다. 웹 사이트에서도 동일한 문제가 발생합니다.
로컬 호스트에서
$.ajax({ url: "/cmfm", type: "POST", contentType: "application/json", // content type is must cache: false, }).done(function (resultdata) { alert('timout passed - ' + resultdata.data); }) .fail(function() { alert('Timout failed'); });
: 서버를 요청
var express = require('express') var app = express(); app.set('port', process.env.PORT || 3003); app.listen(app.get('port')); app.post('/cmfm', function (req, res) { req.setTimeout(600000); //req.socket.setKeepAlive(true,1); var startTime = (new Date()).getTime(); var response = {}; response.data = 1; console.log('request starts to process.. '); setTimeout(function() { var endTime = (new Date()).getTime(); console.log('Total Time taken to run --> ' + (endTime - startTime)); res.json(response); }, 180000); });
클라이언트 측 코드 :
120 초 요청을 잡아 내 서버 코드를 찾아주세요 : 3003
예상대로 작동합니다. 수행 아약스는 1백80초IPADDRESS 후 트리거 : 3003
그것은 1백20초 후 ajax.fail()를 트리거 정확히에서는 setTimeout 콜백 서버에서 fn을 마무리하지 않고.
이 문제를 해결하는 데 도움을주십시오.
감사합니다 .. 아약스 타임 아웃은 나에게 도움이되지 않지만 ... 지금 해결 .. 솔루션 - 그냥 내 사무실 네트워크에서 분리하고 데이터 카드를 사용하여 외부 네트워크에 의해 연결. 그래서 나는 그것이 방화벽/프록시 문제 일 것 같아요 ... 또한 네트워크의 측면에서 할 정확한 변화를 좁히고 게시 할 수 있습니다. – user2749751