Javascript NodeJs请求代理可以';t处理多个请求(无论有多少个)

Javascript NodeJs请求代理可以';t处理多个请求(无论有多少个),javascript,node.js,axios,Javascript,Node.js,Axios,我正在制作一个脚本,生成代理,然后找到它们的IP(在美国的位置),为此,我使用和作为代理发出请求。我正在等待对位置的多次检查,问题是,无论我同时发出10个或1000个请求,最后都会变慢(最后10%的请求)。我真的不理解这种奇怪的行为,甚至在它导致节点以代码0退出之前 const path=require(“路径”); 常数fs=要求(“fs”); const-utils=需要(“./utils”); const=require(“lodash”); const request=require(

我正在制作一个脚本,生成代理,然后找到它们的IP(在美国的位置),为此,我使用和作为代理发出请求。我正在等待对位置的多次检查,问题是,无论我同时发出10个或1000个请求,最后都会变慢(最后10%的请求)。我真的不理解这种奇怪的行为,甚至在它导致节点以代码0退出之前

const path=require(“路径”);
常数fs=要求(“fs”);
const-utils=需要(“./utils”);
const=require(“lodash”);
const request=require(“got”);
施工隧道=要求(“隧道”);
常量代理管理器={
代理:{},
proxiesPath:utils.cwdPath(“proxies.json”),
异步生成(
计数=2000,
速度=100,
) {
log(`生成和本地化${count}代理…`);
让计数器=1,
ProxiseSet=新集合();
for(设i=0;i
(异步()=>{
const res=等待此操作。定位(x);
updateLog(`Progress:${counter++}/${count}`);
返回res;
})()
)
)
)
.过滤器((x)=>x)
.forEach((x)=>{
this.proxy[x.geo]=this.proxy[x.geo]| |[];
this.proxies[x.geo].push({
代理:x.proxy,
ip:x.ip,
geo:x.geo,
});
});
}
},
异步定位(代理){
试一试{
常量部分=代理
.replace(“http://”和“”)
.拆分(“@”)
.map((x)=>x.split(“:”)
.flat();
常数proxyObj={
代理:{
主持人:零件[2],,
端口:零件[3],
proxyAuth:parts.slice(0,2).join(“:”),
},
};
const res=JSON.parse(
等待请求。获取(“https://getIpLocation-api.com/myip.json", {
代理人:{
http:tunnel.httpOverHttp(proxyObj),
https:tunnel.httpsOverHttp(proxyObj),
},
仅此而已:是的,
超时时间:2000,
})
);
返回{
代理
地理:[res.country,res.geo.region]。加入(“”),
ip:res.ip,
};
}捕获(错误){
//console.log(
//`未找到位置,错误:${ERROR.code | | eroor.message}”`
//   );
//调试器;
返回false;
}
},
};
module.exports=proxyManager