Integrated time levels into the timer.js

This commit is contained in:
Mathias Wagner
2022-06-12 17:07:55 +02:00
parent a6c266607e
commit ddf4ce9054

View File

@@ -3,11 +3,32 @@ const schedule = require('node-schedule');
let job;
module.exports.startTimer = () => {
const rule = new schedule.RecurrenceRule();
rule.minute = 0
module.exports.startTimer = (timeLevel) => {
job = schedule.scheduleJob(getRuleFromLevel(timeLevel), () => this.runTask());
}
job = schedule.scheduleJob(rule, () => this.runTask());
const getRuleFromLevel = (level) => {
const rule = new schedule.RecurrenceRule();
switch (level) {
case 1:
rule.second = 0;
break;
case 2:
rule.minute = [0, 30]
break;
case 3:
rule.minute = 0;
break;
case 4:
rule.hour = [0, 3, 6, 9, 12, 15, 18, 21];
break;
case 5:
rule.hour = [0, 6, 12, 18];
break;
}
return rule;
}
module.exports.runTask = async () => {
@@ -20,7 +41,10 @@ module.exports.runTask = async () => {
}
module.exports.stopTimer = () => {
job.gracefulShutdown();
if (job !== undefined) {
job.cancel();
job = undefined;
}
}
module.exports.job = job;