Поток узла заканчивается перед обработкой - PullRequest
0 голосов
/ 05 июля 2019

я преобразовал папку в поток, используя readdirp .

let func = async (details, done, next) => {
const { stats } = details;
process.send({ msg: "data", details: details });
 done();
 next(null, details);
}};

 let stream = readdirp(pathname);
 var upload = () => {
  var queue = createQueue(50);
  let stream = es.map(async (data, next) => {
    queue.defer(async function(details, done) {
      func(details, done, next);    
    }, data);
  });
  return stream;
};

stream.on("end", () => {
  process.send({ msg: "killMe", details: {end : "end"} });
});

Я запускаю это в дочернем процессе, который я разветвил в parent. поэтому отправил путь только к родителю, используя process.send({ msg: "data", details: details });

я загружаю файлы в родительский процесс по пути, который я получил от child. Проблема, с которой я сталкиваюсь, Поток в child заканчивается очень нетерпеливо, прежде чем я загружаю даже 100 файлов, фактически имеющих 1000000 файлов.

Я подозреваю, что это из-за противодавления . потому что я обнаружил, что этот вопрос похож на меня.

как это решить ??

  1. Я делаю правильно, сначала я попытался прочитать каталог в главном потоке, он работает, но зависание основного потока вызывает сбой приложения. так отделяй это как дочернюю нить. теперь нет проблем со скоростью, памятью, без сбоев приложения.

Но я сталкиваюсь с этим, вы, ребята, пожалуйста, помогите мне !!!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...