Показать сообщение отдельно
  #1 (permalink)  
Старый 21.11.2014, 23:33
Аватар для Shasoft
Профессор
Отправить личное сообщение для Shasoft Посмотреть профиль Найти все сообщения от Shasoft
 
Регистрация: 03.03.2009
Сообщений: 156

Node JS: ограничение на создание потоков
Есть ли какие-то ограничения на количество созданных файловых потоков? У меня идет рекурсивный обход вложенных директорий и для каждого файла я считаю md5 hash. Делаю это так:
// Создать объект для расчета контрольной суммы
var retHash = crypto.createHash('md5');
// Создать поток для чтения файла
var rs = fs.createReadStream(filepath);
// Вещаем обработчик на чтение данных из файлового потока
rs.on('data', function (data) {
     retHash.update(data);
});
// Вещаем обработчик на окончание чтения данных из файлового потока
rs.on('end', function () {
   // Вызвать функцию обратного вызова и вернуть результат
   _retResult(null);
});

Однако получаю ошибку если файлов в директориях много (у меня около 8 тыс)
Код:
events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: EMFILE, open 'D:\Apps\OpenServer\domains\shasoft-cms.ru\.share\icons3\16x16\routing_go_straight_right.png'
Если я закоментирую код для расчета md5, то ошибка пропадает. В связи с этим и возник вопрос.
Возможно есть какое-то ограничение на количество открытых файловых потоков и просто получается превышение лимита?
Ответить с цитированием