Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Чтение многих файлов (https://javascript.ru/forum/node-js-io-js/66396-chtenie-mnogikh-fajjlov.html)

zzareyan 12.12.2016 21:15

Чтение многих файлов
 
Здравствуйте,

Такой вопрос.
У меня есть большой лист путей к файлам в локальном диске, около 0,5 миллионов.
Как можно сделать fs.createReadStream, чтобы не выдавал ошибку, типа "читаю слишком много файлов".

Если это разбивание листа на маленькие листы ~1000, как это сделать.
Какой в этом случае best practice?

Спасибо.

Alexandroppolus 14.12.2016 16:23

можно использовать библиотеку async и для твоей коллекции вызвать
async.eachLimit

это как раз твой случай. Вторым параметром указываешь, сколько максимум файлов можно обрабатывать одновременно.

zzareyan 13.01.2017 23:17

Цитата:

Сообщение от Alexandroppolus (Сообщение 438007)
можно использовать библиотеку async и для твоей коллекции вызвать
async.eachLimit

это как раз твой случай. Вторым параметром указываешь, сколько максимум файлов можно обрабатывать одновременно.

В общем использовал та же модуль, но другим путем. За ответ все же спасибо.

var async = require('async');
var queue = async.queue(function(filename, callback) {
    //работа с файлами
}, 1000);
 
for (var i = 0; i < files.length; i++) {
    queue.push(files[i]);
}


Часовой пояс GMT +3, время: 03:37.