0

I'm having a little problem with thread blocking algorithms.

I have a route that generates a zip with huge size files.

The flow works like this: GetUrls > ObtainHugeSizeBuffer > GenerateZIP > UploadZIPToCloud

I cannot modify the timeout response default time of 2 minutes with the express-timeout module. I've also been trying to break the loopholes in the .nextTick() function.

I've even tried to look over queueing but I don't think that applies in this situation.

Do you guys have any idea how to expand the response time? - I strictly need to for one route only.

Adil B
  • 14,635
  • 11
  • 60
  • 78

1 Answers1

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

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

This is the easiest way to extend server timeout, but it affects everything, not just one method.

In your case (you wan't it only for on specific route):

'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;

Not my code, found it in this thead: Node Express specific timeout value per route

You need to google better :)

Taras Danyliuk
  • 256
  • 1
  • 11