я преобразовал папку в поток, используя 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 файлов.
Я подозреваю, что это из-за противодавления . потому что я обнаружил, что этот вопрос похож на меня.
как это решить ??
- Я делаю правильно, сначала я попытался прочитать каталог в главном потоке, он работает, но зависание основного потока вызывает сбой приложения. так отделяй это как дочернюю нить. теперь нет проблем со скоростью, памятью, без сбоев приложения.
Но я сталкиваюсь с этим, вы, ребята, пожалуйста, помогите мне !!!!