【问题标题】:Multiple API connections through Nodejs通过 Nodejs 的多个 API 连接
【发布时间】:2015-12-17 09:24:22
【问题描述】:

我想连接theMovieDb api,获取大量电影。 api 限制为每 10 秒 40 次调用,每个 IP 20 个连接。

如何在 node.js 中执行此操作?现在我一次有一个对 api 的 http 请求,但是任何超过 40 次的调用都会导致错误。

【问题讨论】:

    标签: javascript node.js express connection rate-limiting


    【解决方案1】:

    每 10 秒 40 个请求,20 个并发连接,因此在“一个线程”中我们将不得不等待大约 5 秒。

    有一个很棒的库,用于所有异步内容,称为 async

    var loadOne = function (id, callback) {
       // Do your stuff
       // tell it to wait
       setTimeout(callback, 5000);
    } 
    
    
    async.mapLimit(arrayOfIds, 20, loadOne, function(err, results){
        // results is now an array of stats for each file
    });
    

    【讨论】:

    • 我在这里可能错了。我知道异步并使用它可以发送多个请求,但我没有得到并发连接部分?在 node.js 中是如何完成的
    • @shiv 你的意思是在语言层面是怎么做的?
    • @shiv 在上面的代码中,我们只是使用async来限制并发操作的数量
    • 如果您想知道 nodejs 的异步方式,请参考this article,它会为您提供帮助;)
    • @shiv 基本上您在loadOne 或您想要的任何其他http 库中使用相同的请求。重点是使用mapLimit 你可以限制有多少loadOne 函数会被并行调用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 2014-10-27
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多