我在Node中构建了一个脚本来循环超过10k +记录,并为每条记录发出HTTP请求。只要我将maxSockets
设置为20,这就行得很好。但是,脚本开始减速大约2500,然后最终停止。没有错误。活动监视器中的内存和CPU使用率不会出现峰值。我在Python中重写了相同的脚本,它运行正常,但速度要慢得多。有什么想法吗?
以下是该脚本的基本概念:
var fs = require('fs'),
https = require('https');
input = fs.readFileSync('./csv.csv'),
parse = require('csv-parse');
https.globalAgent.maxSockets = 20;
parse(input, {}, (e, o) => {
o.forEach((l, i) => {
var req = https.request({
host: 'some.host.com',
path: `/some/path/${l[4]}`,
port: 443,
method: 'GET'
}, (res) => {
if(res.statusCode === 200) {
fs.appendFile('./results.csv', `${l}\n`);
}
});
req.end();
});
});