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

0 ответов

Другие вопросы по тегам