繁体   English   中英

仅接受NodeJS和Express中大量请求中的第一个请求

[英]Accept only first request from a bulk of requests in NodeJS and Express

我有一种情况,我将在不到5秒的时间内收到一百个请求,而我只想接受第一个请求并将其存储到数据库(mongodb)。 那么,对用户的响应将是他们是否被接受。

您建议我使用哪种方法或库? 我正在使用NodeJS和Express。 谢谢

1)将每个查询的回调序列写入数组

2)当第一个请求完成计算后-调用所有回调

// routes/index.js
var requests = [];

router.get('/:order', function(req, res, next) {
    if (requests.length === 0) {
        var f = function() {
            res.json('first order complete');
        }
        requests.push( f );

        // Process first request
        setTimeout( function() {
            while (requests.length > 0) {
                requests.shift()();
            }
            requests = [];
        }, 10000);
    } else {
        var f = function() {
            res.json( req.params.order );
        }
        requests.push( f );
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM