From ddf4ce905458ef94f50dfb7be077556b95f62e57 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sun, 12 Jun 2022 17:07:55 +0200 Subject: [PATCH] Integrated time levels into the timer.js --- server/tasks/timer.js | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/server/tasks/timer.js b/server/tasks/timer.js index 964c675c..728cdc10 100644 --- a/server/tasks/timer.js +++ b/server/tasks/timer.js @@ -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; \ No newline at end of file