Node.js - 调用搜索索引时内存不足

时间:2012-01-28 04:25:28

标签: node.js stream elasticsearch

我正在尝试从csv文件中读取并将数据插入到elasticsearch索引中。如下所示,我使用读取流并监听“数据”事件。我的问题是,我使用这种方法很快耗尽了内存。我猜这是因为elasticsearch模块(弹性模板)每次都在制作一个REST,并且会增加这些请求的数量。

我很新,所以有没有办法解决这个问题,所以它不会耗尽内存?任何一般模式或技术?

stream.on('data', function (doc) {
    // create a json from doc
    client.index('entities', 'command', json, function (err, res) {
        console.log(res);
    });
}

1 个答案:

答案 0 :(得分:0)

获取数据时暂停流,并在请求完成后恢复数据。

stream.on('data', function (doc) {
    stream.pause();
    // create a json from doc
    client.index('entities', 'command', json, function (err, res) {
        stream.resume();
        console.log(res);
    });
}

关于您的代码的奇怪之处在于您没有在该函数中的任何位置使用doc。我猜你没有发布你的整个代码。