Я пытаюсь загрузить более 100 файлов одновременно. Но когда я выполняю функцию загрузки, мой macbook зависает (не может выполнять новые задачи) в окнах также не загружается (но не замораживается) и не загружается в обоих случаях (бездействующая сеть).Node.JS загружает сотни файлов одновременно
Вот мой модуль загрузки:
var express = require('express');
var router = express.Router();
var fs = require('fs');
var youtubedl = require('youtube-dl');
var links = require('../models/Links');
router.get('/', function (req, res, next) {
links.find({dlStatus: false}, function (err, docs) {
if (err) {
console.log(err);
res.end();
} else if (!docs) {
console.log('No incomplete downloads!');
res.end();
} else {
for (var i = 0; i < docs.length; i++) {
//todo scraping
var video = youtubedl(docs[i].url, [], {cwd: __dirname});
// Will be called when the download starts.
video.on('info', function (info) {
console.log('Download started');
console.log(info);
});
video.pipe(fs.createWriteStream('./downloads/' + docs[i].id + '-' + i + '.mp4'));
video.on('complete', function complete(info) {
links.findOneAndUpdate({url: info.webpage_url}, {dlStatus: true}, function (err, doc) {
if (err)console.log(err);
else console.log('Download completed!')
});
});
}
}
});
});
module.exports = router;
Теперь может кто-нибудь, пожалуйста, помогите мне здесь? Я использую модуль this для загрузки файлов.
Загружается, работая для одиночного ..? – vkstack
Да, я пробовал с 5 загрузками одновременно, что тоже сработало, теперь я пытаюсь с 101, тогда это происходит –
Попробуйте использовать async.That будет работать – vkstack