Приложение NodeJs прерывается при асинхронном копировании файла
Я пытаюсь написать код для копирования файла в Node.js:
function archiveFolder(site, callback) {
//console.log("Processing Site2 " + site );
var path = srcDir + '/' + site;
var startDate = moment(new Date(), 'YYYYMMDD');
asyncCounter++;
console.log("getting list of files for site " + site);
fse.readdir(path, function(err, files) {
console.log("got list of files for site " + site);
if (err) {
console.log(err);
return callback(err);
}
async.eachLimit(files, 5, function(file, callback2) {
var endDate = moment(file, 'YYYYMMDD');
var diff = startDate.diff(endDate, 'days');
fs.stat(path + '/' + file, function(err, stats) {
try {
if (err) {
return callback2(err);
}
if (/^\d{8}$/i.test(file) && stats.isDirectory() && diff >= 7) {
fse.ensureDir(destDir + '/' + site, function(err) {
fse.copy(path + '/' + file, destDir + '/' + site + '/' + file, function(err) {
try {
if (err) {
//console.log(err);
return callback2(err);
} else {
console.log("copied " + site + '/' + file);
return callback2();
}
} catch (e) {
console.log(e);
return callback2(err);
}
});
});
} else {
// //console.log("failed " + path + '/' + file)
return callback2();
}
} catch (e) {
console.log(e);
return callback2(err);
}
});
}, function(err) {
if (!err) {
//console.timeEnd("site");
console.log("finished Site " + site + " asyncCounter " + asyncCounter);
return callback();
} else {
return callback(err + " test");
}
});
});
}
Тем не менее, нет никаких сообщений об ошибках на консоли или системных журналах /var/log/messages
Что может быть причиной такого поведения? Я могу увеличить ulimit
на сервере, но я хочу подтвердить, что это связано с этим ограничением количества открытых файлов.