mirror of
https://github.com/gnmyt/myspeed.git
synced 2026-01-04 12:09:47 -06:00
Integrated time levels into the timer.js
This commit is contained in:
@@ -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;
|
||||
Reference in New Issue
Block a user