我正在尝试从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);
});
}
答案 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
。我猜你没有发布你的整个代码。