同時に100個以上のファイルをダウンロードしようとしています。しかし、ダウンロード機能を実行すると、Macbookがフリーズ(新しいタスクを実行することができない)し、Windowsではダウンロードも(フリーズしません)、どちらの場合でもダウンロードが進行しません(アイドルネットワーク)。ここで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