【问题标题】:How to run a script certain time using nodejs?如何使用nodejs在特定时间运行脚本?
【发布时间】:2017-03-14 00:34:12
【问题描述】:

每当readDirectory 被调用时,我都会检查是否有任何文件创建日期超过 30 天,我想从目录中删除该文件。这按预期工作并删除了文件,但我认为它效率不高。所以我想移动comapreDates 方法来分隔文件并每天晚上调用目录logs/St 并检查是否有任何文件过期超过 30 天期限将其删除。可行吗?

service.js

function readDirectory(callback) {
    var dirPath = './logs/St';
    var files = fs.readdirSync(dirPath);
    async.eachSeries(files, function(file, callback) {
        var filePath = path.join(dirPath, file);
        var fileInfo = {};
        fs.stat(filePath, function(err, stats) {
            if (err) {
                console.info("File doesn't");
            } else {
                fileInfo.fileDate = stats.birthtime;
                fileInfo.filename = file;
                compareDates(fileInfo, filePath);
                objToReturn.push(fileInfo);
                callback();
            }
        });
    }, function(err) {
        //final callback when all files completed here send objToReturn to client
        callback(objToReturn);
    });
}
}

function compareDates(file, path) {
    var timeDiff = Math.abs(currentDate.getTime() - file.fileDate.getTime());
    var dayDifference = Math.ceil(timeDiff / (1000 * 3600 * 24));
    console.log('Days', dayDifference);
    console.log('FileName', file.filename);
    if (dayDifference >= 30) {
        fs.unlink(path, function(err) {
            if (err) {
                // file doens't exist
                console.info("File doesn't exist, won't remove it.");
            } else {
                console.log('removed file', file);
            }
        });

    }

}

【问题讨论】:

    标签: javascript node.js cron


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 2015-09-28
    • 2013-11-27
    • 2020-11-08
    • 2019-04-18
    • 2020-10-24
    • 2020-11-01
    • 1970-01-01
    • 2015-11-08
    相关资源
    最近更新 更多