rittenhop-ghost/versions/5.94.2/node_modules/express-queue/examples/app.js

50 lines
1.2 KiB
JavaScript

'use strict';
const debug = require('debug')('app');
const express = require('express');
const http = require('http');
//var queue = require('express-queue');
const expressQueue = require('../');
const httpPort = 8080;
const app = express();
// Using queue middleware
const queueMw = expressQueue({ activeLimit: 2, queuedLimit: 6 });
app.use(queueMw);
// May be also:
// app.use(queue({ activeLimit: 2, queuedLimit: -1 }));
// - or -
// app.use('/test1', queue({ activeLimit: 2 }) );
const RESPONSE_DELAY = 1000; // Milliseconds
let counter = 0;
app.get('/test1', function (req, res) {
let cnt = counter++; // local var inside the closure
console.log(`get(test1): [${cnt}/request] queueLength: ${queueMw.queue.getLength()}`);
const result = { test: 'test' };
setTimeout(function() {
console.log(`get(test1): [${cnt}/ready] queueLength: ${queueMw.queue.getLength()}` );
res
.status(200)
.send(result);
console.log(`get(test1): [${cnt}/sent] queueLength: ${queueMw.queue.getLength()}`);
}, RESPONSE_DELAY);
});
const server = http.createServer(app);
server.listen(httpPort, function () {
console.log(`* Server listening at ${server.address().address}:${server.address().port}`)
});