1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /**
- * Created by Tony on 2018/7/27.
- */
- let fs = require('fs');
- let cron = require('node-schedule');
- let remove_file_types = [".xlsx", ".pdf", ".jsp"];
- function chkIsRemoveType(file) {
- let rst = false;
- for (let fType of remove_file_types) {
- if (file.indexOf(fType) === (file.length - fType.length)) {
- rst = true;
- break;
- }
- }
- return rst;
- }
- let jobObj = {
- createJob: function (rule, rootPath) {
- let localRule = rule;
- if (!localRule) {
- // setup schedule rule
- localRule = new cron.RecurrenceRule();
- // 3:15AM, everyday
- localRule.dayOfWeek = [1,2,3,4,5,6,0];
- localRule.hour = 3;
- localRule.minute = 15;
- }
- cron.scheduleJob(localRule, function(){
- let path = rootPath;
- fs.exists(path, function (exists) {
- if (exists) {
- fs.readdir(path, function (err, files) {
- let currentTime = (new Date()).valueOf();
- let timeGap = currentTime - (1000 * 60 * 60 * 24 * 0.5); //half day before
- files.forEach(function(file,index){
- if (chkIsRemoveType(file)) {
- let curPath = path + "/" + file;
- fs.stat(curPath,function(err,data){
- if (timeGap > data.mtime) {
- fs.unlink(curPath);
- }
- });
- }
- });
- })
- }
- })
- });
- }
- };
- module.exports = { rptCronJob: jobObj };
|