Node.js - Недостаточно памяти при совершении звонков в поисковый индекс - PullRequest
0 голосов
/ 28 января 2012

Я пытаюсь прочитать из CSV-файла и вставить данные в индекс эластичного поиска.Как показано ниже, я использую readstream и прослушиваю событие «data».Моя проблема в том, что я быстро исчерпал память, используя этот подход.Я предполагаю, что это потому, что модульasticsearch (elastical) каждый раз делает REST, и количество таких запросов возрастает.

Я довольно новичок, так что есть ли способ для меня это исправить такне хватает памяти?Какие-нибудь общие закономерности или техники?

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

1 Ответ

0 голосов
/ 28 января 2012

Приостановить поток при получении данных и возобновить его после завершения запроса.

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 где-либо в этой функции.Я предполагаю, что вы не публикуете весь свой код.

...