主要代码:
db_operation.db_getUrl('appsIndex_China', function(results){
var arr = [],
length = results.length;
for(var i = 0; i < length; i++)
{
var item = results[i];
(function(i, item){
request(item.url, function(error, response, body){
if(!error && response.statusCode == 200)
{
$ = cheerio.load(body);
getAppDetail('#content', function(data){
data.id = item.id;
arr.push(data);
});
if(arr.length == 100)
{
db_operation.db_addBasciDetail('appBasicDetail_China', arr);
}
}
})
}(i, item));
}
})
length大概是1w6,应该是request的地址太多了,求问该怎么解决?跪谢!
baidu+google了一下,说要改系统最大打开的文件数,但是我现在能打开的文件数已经是1000000了:
1)OS能同时打开的文件数量有限制,即使你调大的系统值,也是有一个瓶颈的
2)你要在代码中控制发送的异步请求的数量控制一定范围内,发送的过多实际上也没有意义,服务器发现同一个IP过来的请求数过多,也会拒绝你的请求
你可以做如下修改试试: