如何延长响应超时默认时间?

时间:2017-10-30 10:20:55

标签: javascript node.js multithreading express blocking

我对线程阻塞算法有一点问题。

我有一条生成带有大尺寸文件的zip的路线。

流程的工作原理如下: GetUrls> ObtainHugeSizeBuffer> GenerateZIP> UploadZIPToCloud

我无法使用express-timeout模块修改超时响应默认时间2分钟。我也一直试图打破.nextTick()功能的漏洞。

我甚至试图查看排队但我不认为这适用于这种情况。

你们有没有想过如何扩大响应时间? - 我只需要一条路线。

1 个答案:

答案 0 :(得分:0)

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

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

这是扩展服务器超时的最简单方法,但它会影响所有内容,而不仅仅是一种方法。

在你的情况下(你只想在特定的路线上):

'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

你需要谷歌更好:)