@fabrix/spool-crons
Version:
Spool - Cron Jobs for Fabrix
45 lines • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const lodash_1 = require("lodash");
exports.Crons = {
configure: (app) => {
return;
},
cancelCrons: (app) => {
for (const j in app.scheduler.scheduledJobs) {
if (app.scheduler.scheduledJobs.hasOwnProperty(j)) {
const job = app.scheduler.scheduledJobs[j];
job.cancel();
}
}
return Promise.resolve();
},
copyDefaults: (app) => {
app.config.set('cronsDefaults', lodash_1.clone(app.config.get('crons')));
return Promise.resolve({});
},
addCrons: (app) => {
Object.keys(app.crons || {}).forEach(function (key) {
const cron = app.crons[key];
cron.freeze();
if (cron.methods && cron.methods.indexOf('schedule') > -1
&& app.config.get('crons.auto_schedule') !== false) {
cron.schedule();
app.log.debug(`Engine auto scheduled ${cron.name}: ${cron.scheduledJobs.length} jobs`);
}
const profile = app.config.get('crons.profile');
if (app.config.get('crons.profiles')
&& app.config.get('crons.profiles')[profile]) {
app.config.get('crons.profiles')[profile].forEach(allowed => {
const allowedCron = allowed.split('.')[0];
const allowedMethod = allowed.split('.')[1];
if (allowedCron === key && cron.methods.indexOf(allowedMethod) > -1) {
cron[allowedMethod]();
}
});
}
});
return;
}
};
//# sourceMappingURL=Crons.js.map