我有一个包含7000个用户的数组列表。
对于7000个用户中的每个用户,我需要发出GET请求。
我的代码运行但是我收到了很多请求的以下错误:
"ENFILE"
"ENFILE"
"connect"
"10.10.12.72"
80
我相信我需要限制请求,但不确定如何去做。
以下是代码:
用户是一个包含7000个条目的数组。
users.forEach((user) => {
axios({
url: getUserRolesEndpoint + `${user.userId}`,
method: 'get',
timeout: 10000,
})
.then((response) => {
// I do something with the response
});
});
答案 0 :(得分:0)
看起来像图书馆的限制者'解决了我的问题:
const RateLimiter = require('limiter').RateLimiter;
const limiter = new RateLimiter(5, 'second');
users.forEach((user) => {
limiter.removeTokens(1, (errd, remainingRequests) => {
axios({
url: getUserRolesEndpoint + `${user.userId}`,
method: 'get',
timeout: 10000,
})
.then((response) => {
// I do something with the response
});
});
});