gpt4 book ai didi

node.js - 速率限制 GET 请求

转载 作者:可可西里 更新时间:2023-11-01 09:20:53 24 4
gpt4 key购买 nike

我有一个外部 API,可将 API 请求速率限制为每秒最多 25 个请求。我想将部分结果插入 MongoDB 数据库。

我如何限制请求函数的速率,这样我就不会错过所有数组的任何 API 结果?

MongoClient.connect('mongodb://127.0.0.1:27017/test', function (err, db) {
if (err) {
throw err;
} else {
for (var i = 0; i < arr.length; i++) {
//need to rate limit the following function, without missing any value in the arr array
request( {
method: 'GET',
url: 'https://SOME_API/json?address='+arr[i]
},
function (error, response, body) {
//doing computation, including inserting to mongo
}
)
};
}
});

最佳答案

这可以使用 request-rate-limiter 包来完成。所以你可以将它添加到你的代码中:

var RateLimiter = require('request-rate-limiter');
const REQS_PER_MIN = 25 * 60; // that's 25 per second
var limiter = new RateLimiter(REQS_PER_MIN);

并且因为 request-rate-limiter 是基于 request 的,你可以用 limiter.request 替换 request >

您可以在软件包的 npm 页面上找到更多信息 - https://www.npmjs.com/package/request-rate-limiter

就个人而言 - 我会用 promises 替换所有这些回调

关于node.js - 速率限制 GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24783542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com