pooliot-client
Version:
63 lines (56 loc) • 1.39 kB
JavaScript
import { schedule } from 'node-cron';
import Logger from 'nightingale';
import * as screen from './commands/screen';
import * as display from './commands/display';
const logger = new Logger('app:cron');
const screenOnTask = schedule(
'30 8 * * 1-5',
() => {
logger.info('screen on');
screen.on();
},
false,
);
const screenOffTask = schedule(
'0 20 * * 1-5',
() => {
logger.info('screen off');
screen.off();
},
false,
);
let screenOnOffTaskStarted = false;
const refreshTask = schedule(
'*/30 9,10,11,12,13,14,15,16,17,18,19 * * 1-5',
() => {
logger.info('refresh');
display.refresh();
},
false,
);
let refreshTaskStarted = false;
export default config => {
if (config.screenOff) {
if (!screenOnOffTaskStarted) {
screenOnOffTaskStarted = true;
logger.info('staring cron screen tasks');
screenOnTask.start();
screenOffTask.start();
}
} else if (screenOnOffTaskStarted) {
screenOnOffTaskStarted = false;
logger.info('stopping cron screen tasks');
screenOnTask.stop();
screenOffTask.stop();
}
if (config.autoRefresh) {
if (!refreshTaskStarted) {
refreshTaskStarted = true;
logger.info('staring cron autoRefresh tasks');
refreshTask.start();
}
} else if (refreshTaskStarted) {
logger.info('stopping cron autoRefresh tasks');
refreshTask.stop();
}
};