1 | import { schedule } from 'node-cron';
|
2 | import Logger from 'nightingale';
|
3 | import * as screen from './commands/screen';
|
4 | import * as display from './commands/display';
|
5 |
|
6 | const logger = new Logger('app:cron');
|
7 |
|
8 | const screenOnTask = schedule(
|
9 | '30 8 * * 1-5',
|
10 | () => {
|
11 | logger.info('screen on');
|
12 | screen.on();
|
13 | },
|
14 | false,
|
15 | );
|
16 |
|
17 | const screenOffTask = schedule(
|
18 | '0 20 * * 1-5',
|
19 | () => {
|
20 | logger.info('screen off');
|
21 | screen.off();
|
22 | },
|
23 | false,
|
24 | );
|
25 |
|
26 | const refreshTask = schedule(
|
27 | '*/30 9,10,11,12,13,14,15,16,17,18,19 * * 1-5',
|
28 | () => {
|
29 | logger.info('refresh');
|
30 | display.refresh();
|
31 | },
|
32 | false,
|
33 | );
|
34 |
|
35 | export default config => {
|
36 | if (config.screenOff) {
|
37 | logger.info('staring cron screen tasks');
|
38 | screenOnTask.start();
|
39 | screenOffTask.start();
|
40 | } else {
|
41 | logger.info('stopping cron screen tasks');
|
42 | screenOnTask.stop();
|
43 | screenOffTask.stop();
|
44 | }
|
45 |
|
46 | if (config.autoRefresh) {
|
47 | logger.info('staring cron autoRefresh tasks');
|
48 | refreshTask.start();
|
49 | } else {
|
50 | logger.info('stopping cron autoRefresh tasks');
|
51 | refreshTask.stop();
|
52 | }
|
53 | };
|