UNPKG

pooliot-client

Version:
63 lines (56 loc) 1.39 kB
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(); } };