Краткое вступление
Я занимаюсь разработкой серверного приложения в 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, и это мое первое заявление.