2017-10-30 13 views
0

스레드 차단 알고리즘에 약간의 문제가 있습니다.응답 시간 초과 기본 시간을 연장하는 방법은 무엇입니까?

거대한 크기의 파일이있는 zip을 생성하는 경로가 있습니다.

흐름은 다음과 같이 작동 GetUrls> ObtainHugeSizeBuffer> GenerateZIP> UploadZIPToCloud

나는 express-timeout 모듈 2 분 시간 제한 응답 기본 시간을 수정할 수 없습니다. 나는 또한 .nextTick() 기능의 허점을 없애려고 노력했다.

나는 심지어 대기열을 조사하려고했지만이 상황에 해당한다고 생각하지 않습니다.

응답 시간을 늘리는 방법에 대한 아이디어가 있습니까? - 나는 단 하나의 길만을 위해 엄격히 필요하다.

답변

0
// start the server 
const server = app.listen(8080); 

// increase the timeout to 4 minutes 
server.timeout = 240000; 

이것은 서버 시간 초과를 확장하는 가장 쉬운 방법이지만 한 가지 방법이 아닌 모든 것에 영향을 미칩니다. 귀하의 경우에는

(당신은 특정 노선에 위해를 wan't) :

'use strict'; 

const ms = require('ms'); 
const express = require('express'); 
const router = express.Router(); 

router.route('/upload-files') 
    .post(
    setConnectionTimeout('12h'), 
    require('./actions/upload-files').responseHandler 
); 

function setConnectionTimeout(time) { 
    var delay = typeof time === 'string' 
    ? ms(time) 
    : Number(time || 5000); 

    return function (req, res, next) { 
    res.connection.setTimeout(delay); 
    next(); 
    } 
} 

exports.router = router; 

하지 내 코드, 발견은이 THEAD : Node Express specific timeout value per route

당신은 더 나은 구글 필요 :)

+0

하나의 경로에만 엄격하게 필요합니다. –

+0

수정 된 답변이므로 도움이됩니다. –

+0

좋아, 고마워. 왜 시간 초과 - 익스프레스가이 경우에 작동하지 않았는지 구입하십시오. 이상한 점이 있습니다 ... –