NodeJS: Чтение CSV-файла с разбиением на страницы (то есть, если в нем 1000 файлов, я получу 0-99, а при вызове next () я получу 100-199 и т. Д.) - PullRequest
0 голосов
/ 11 мая 2019

Краткое вступление

Я занимаюсь разработкой серверного приложения в NodeJS, которое включает в себя один модуль, который считывает данные из CSV-файла и выполняет какую-то задачу.

В файле CSV данные могут быть в миллионах строк, но в то же время у меня ограниченная доступная память.

Для выполнения задачи я использую kue (создание задания на строку)

В настоящее время я создаю задания, как только программа чтения CSV выдаст мне данные, и Кью сохранит эту работу в памяти и не уйдет до ее завершения (поэтому до тех пор, пока программа чтения CSV не завершит чтение файла, в памяти существуют миллионы работ).

Итак, в качестве решения Я хочу прочитать первые несколько сотен строк, создать задания, пусть wait till it finish, затем прочитать еще сотни.

Здесь ожидание важнее, я не могу использовать какой-либо модуль, который позволяет мне читать файл построчно, потому что в этом случае он будет возвращать мне залоговое удержание, и я буду продолжать создавать рабочие места.

Я хочу управлять считывателем так, чтобы, когда я получу желаемые сотни (например, 100), я подожду, пока все 100 не закончат, а затем попросит читателя вернуть следующие сотни (например, следующие 100).

Заключение

Я хочу знать, как я могу прочитать несколько строк из файла CSV, затем обработать его, а затем прочитать оставшиеся (То же самое, что нумерация страниц).

Код будет выглядеть примерно так:

const smartReader = required('snartReader');
smartReader.read(100,(data,next) => {
   performJobs(data); // wait until it finish then
   next(); // it will read next 100    });

Декларация

Я не опытный человек в NodeJS, и это мое первое заявление.

...