Files
myspeed/server/tasks/timer.js

28 lines
673 B
JavaScript

const pauseController = require('../controller/pause');
const schedule = require('node-schedule');
const {isValidCron} = require("cron-validator");
let job;
module.exports.startTimer = (cron) => {
if (!isValidCron(cron)) return;
job = schedule.scheduleJob(cron, () => this.runTask());
}
module.exports.runTask = async () => {
if (pauseController.currentState) {
console.warn("Speedtests currently paused. Trying again later...");
return;
}
await require('./speedtest').create("auto");
}
module.exports.stopTimer = () => {
if (job !== undefined) {
job.cancel();
job = undefined;
}
}
module.exports.job = job;