快速并发Http请求

时间:2018-10-06 16:22:57

标签: node.js express concurrency blocking

用户可以触发多个并发HTTP请求来表示服务器。在服务器端,我要阻止除第一个请求(针对该特定用户)以外的所有并发请求,然后执行一些操作并逐个解除阻止其他请求。

用户的请求不应被其他用户的请求阻止。

如何在nodejs中实现呢?可以通过授权标头识别用户的请求(唯一)。

谢谢

1 个答案:

答案 0 :(得分:-1)

有很多方法可以实现,但是我能想到的最简单的方法是:

var blocked = {};
app.get('/bla', function(req, res){

    var id = getIdFromRequest(req);

    if (blocked[id]) // if true then another request is being served
        return res.send('Concurrent requests not allowed');

    blocked[id] = true;

    // do your thing here

    // and respond
    res.send('some data');

    // unlock the user
    delete blocked[id];
});