节点HTTP请求循环失败

时间:2017-03-03 17:19:27

标签: node.js

我在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();
  });
});

0 个答案:

没有答案