All files / modules/scheduler index.js

100% Statements 19/19
100% Branches 2/2
100% Functions 4/4
100% Lines 19/19

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65      2x 2x 2x 2x 2x 2x         2x 2x 1x             1x             2x 2x                       2x 2x                       2x 2x 2x 2x     2x      
/**
 * @module scheduler
 */
const schedule = require('node-schedule');
const recache = require("../cache/recache");
const config = require("../../config").scheduler;
const log = require("../../util/log");
const downloadService = require("../download");
const adminService = require("../admin");
 
/**
 * Schedule the 'recacheAll()' task according to the configuration module.
 */
const scheduleRecache = () => {
    if (process.env.SCHEDULE_RECACHE === '1') {
        schedule.scheduleJob(config.recache,
            /* istanbul ignore next */
            async () => {
                log.info("SCHEDULER: Executing scheduled task 'recacheAll()' at %s...", (new Date).toUTCString());
                await recache.recacheAll();
            });
    } else {
        log.info("SCHEDULER: SKIPPING scheduling of task 'recacheAll()' due to environment config");
    }
};
 
/**
 * Schedule the 'deleteExportFiles()' task according to the configuration module.
 */
const scheduleDeleteExportFiles = () => {
    schedule.scheduleJob(config.deleteExports,
        /* istanbul ignore next */
        async () => {
            log.info("SCHEDULER: Executing scheduled task 'deleteExportFiles()' at %s...",
                (new Date).toUTCString());
            downloadService.deleteExportFiles();
        });
};
 
/**
 * Schedule the 'sendSummary()' task according to the configuration module.
 */
const scheduleWeeklySummary = () => {
    schedule.scheduleJob(config.weeklySummary,
        /* istanbul ignore next */
        async () => {
            log.info("SCHEDULER: Executing scheduled task 'scheduleWeeklySummary()' at %s...",
                (new Date).toUTCString());
            adminService.sendSummary();
        });
};
 
/**
 * Schedule all tasks.
 */
const scheduleAllTasks = () => {
    scheduleRecache();
    scheduleDeleteExportFiles();
    scheduleWeeklySummary();
};
 
module.exports = {
    scheduleAllTasks,
};