mirror of
https://github.com/lucaspalomodevelop/JSSTE_APP.git
synced 2026-03-13 00:07:22 +00:00
add cronjob.js | add deleting old log
This commit is contained in:
parent
bb6bbd7369
commit
592962530d
@ -9,11 +9,14 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"body-parser": "^1.19.2",
|
||||
"chai": "^4.3.6",
|
||||
"cookie-parser": "^1.4.6",
|
||||
"cors": "^2.8.5",
|
||||
"cron": "^1.8.2",
|
||||
"express": "^4.17.3",
|
||||
"mocha": "^9.2.1",
|
||||
"moment": "^2.29.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"chai": "^4.3.6",
|
||||
"mocha": "^9.2.1"
|
||||
}
|
||||
}
|
||||
|
||||
34
src/helper/cronjobs.js
Normal file
34
src/helper/cronjobs.js
Normal file
@ -0,0 +1,34 @@
|
||||
var CronJob = require("cron").CronJob;
|
||||
let jobs = {};
|
||||
let jobsArray = [];
|
||||
|
||||
let logger = require("./logger");
|
||||
|
||||
jobs.addJob = function (cron, func) {
|
||||
let job = new CronJob(cron, func, null, true, "Europe/Berlin");
|
||||
jobsArray.push(job);
|
||||
return job;
|
||||
};
|
||||
|
||||
jobs.addJob("* 1 * * * *", function () {
|
||||
console.log("Cronjob");
|
||||
logger.DeleteOldLogs();
|
||||
});
|
||||
|
||||
jobs.Start = function () {
|
||||
console.log("Starting Cronjobs");
|
||||
jobsArray.forEach((job) => {
|
||||
job.start();
|
||||
});
|
||||
};
|
||||
|
||||
jobs.Stop = function () {
|
||||
console.log("Stopping Cronjobs");
|
||||
jobsArray.forEach((job) => {
|
||||
job.stop();
|
||||
});
|
||||
};
|
||||
|
||||
jobs.Start();
|
||||
|
||||
module.exports = jobs;
|
||||
@ -1,31 +1,49 @@
|
||||
var fs = require("fs");
|
||||
var util = require("util");
|
||||
var moment = require("moment");
|
||||
const { monitorEventLoopDelay } = require("perf_hooks");
|
||||
let name;
|
||||
var log_file;
|
||||
updateData();
|
||||
var log_stdout = process.stdout;
|
||||
|
||||
function updateData() {
|
||||
name = "log_" + moment().format("YYYY-MM-DD") + ".txt";
|
||||
name = "log_" + moment().format("YYYY-MM-DD") + ".log";
|
||||
log_file = fs.createWriteStream(__dirname + "/../../logs/" + name, {
|
||||
flags: "a",
|
||||
});
|
||||
}
|
||||
|
||||
console.log = function (d) {
|
||||
name = "log_" + moment().format("YYYY-MM-DD") + ".txt";
|
||||
name = "log_" + moment().format("YYYY-MM-DD") + ".log";
|
||||
|
||||
d = `[ ${moment().format("YYYY-MM-DD HH:mm:ss")}] ${util.format(d)} \n`;
|
||||
log_file.write(d);
|
||||
log_stdout.write(d);
|
||||
};
|
||||
|
||||
console.error = (d) => {
|
||||
console.log("[ERROR] " + util.format(d));
|
||||
};
|
||||
|
||||
// function getCurrentlog() {
|
||||
// return fs.readFileSync(__dirname + "/../../logs/" + name, "utf8").toString();
|
||||
// }
|
||||
function DeleteOldLogs(olderThan = 30) {
|
||||
let files = fs.readdirSync(__dirname + "/../../logs/");
|
||||
for (file in files) {
|
||||
if (!fs.existsSync(__dirname + "/../../logs/" + file)) {
|
||||
continue;
|
||||
}
|
||||
console.log(file);
|
||||
let date = file.split("_")[1].split(".")[0];
|
||||
if (
|
||||
moment(date, "YYYY-MM-DD").isBefore(moment().subtract(olderThan, "days"))
|
||||
) {
|
||||
fs.unlinkSync(__dirname + "/../../logs/" + file);
|
||||
console.log(
|
||||
"Deleted " + file + " because it is older than " + olderThan + " days"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getCurrentlog(num = -1) {
|
||||
if (num > 0) {
|
||||
@ -41,4 +59,4 @@ function getCurrentlog(num = -1) {
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { getCurrentlog };
|
||||
module.exports = { getCurrentlog, DeleteOldLogs };
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
require("./helper/logger");
|
||||
let logger = require("./helper/logger");
|
||||
let conf = require("./helper/conf")();
|
||||
let websrv = require("./websrv")(conf);
|
||||
let jobs = require("./helper/cronjobs");
|
||||
|
||||
/**
|
||||
* @description
|
||||
@ -15,6 +16,9 @@ websrv.slisten((host, port) => {
|
||||
* Stops the server
|
||||
*/
|
||||
process.on("SIGINT", () => {
|
||||
logger.DeleteOldLogs();
|
||||
console.log("Cronjob Beenden ...");
|
||||
jobs.Stop();
|
||||
console.log("Web-Server Beenden ...");
|
||||
websrv.close();
|
||||
process.exit();
|
||||
|
||||
16
yarn.lock
16
yarn.lock
@ -221,6 +221,13 @@ cors@^2.8.5:
|
||||
object-assign "^4"
|
||||
vary "^1"
|
||||
|
||||
cron@^1.8.2:
|
||||
version "1.8.2"
|
||||
resolved "https://registry.yarnpkg.com/cron/-/cron-1.8.2.tgz#4ac5e3c55ba8c163d84f3407bde94632da8370ce"
|
||||
integrity sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==
|
||||
dependencies:
|
||||
moment-timezone "^0.5.x"
|
||||
|
||||
debug@2.6.9:
|
||||
version "2.6.9"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
||||
@ -615,7 +622,14 @@ mocha@^9.2.1:
|
||||
yargs-parser "20.2.4"
|
||||
yargs-unparser "2.0.0"
|
||||
|
||||
moment@^2.29.1:
|
||||
moment-timezone@^0.5.x:
|
||||
version "0.5.34"
|
||||
resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.34.tgz#a75938f7476b88f155d3504a9343f7519d9a405c"
|
||||
integrity sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==
|
||||
dependencies:
|
||||
moment ">= 2.9.0"
|
||||
|
||||
"moment@>= 2.9.0", moment@^2.29.1:
|
||||
version "2.29.1"
|
||||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
|
||||
integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user