2017-10-30 85 views
0

スレッドのブロックアルゴリズムに少し問題があります。応答タイムアウトのデフォルト時間を延長する方法は?

巨大なサイズのファイルを持つジップを生成するルートがあります。

流れは次のように動作します: GetUrls> ObtainHugeSizeBuffer> GenerateZIP> UploadZIPToCloud

私はexpress-timeoutモジュールと2分のタイムアウト応答のデフォルトの時間を変更することはできません。私はまた、.nextTick()機能の抜け道を打破しようとしています。

私はキューイングを見ようとしましたが、この状況には当てはまりません。

あなたはどのように応答時間を拡大するか考えていますか? - 私は厳密に1つのルートだけにする必要があります。

答えて

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

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

これはサーバータイムアウトを延長する最も簡単な方法ですが、1つの方法だけでなくすべてに影響します。あなたのケースでは

(あなたが唯一の特定のルート上のためにそれを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

あなたがより良いGoogleに必要:)

+0

私は厳密に1つのルートだけが必要です。 –

+0

編集された回答ですので、これは助けてください –

+0

よろしくお願いいたします。なぜタイムアウト - エクスプレスがこの場合にはうまくいかなかったのか、それは奇妙です... –

関連する問題