@stouder-io/adonis-scheduler
Version:
Unopinionated scheduler for Adonis
33 lines (32 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Scheduler_1 = require("../src/Scheduler");
class SchedulerProvider {
constructor(app) {
this.app = app;
}
async register() {
this.app.container.withBindings(['Adonis/Core/Logger', 'Adonis/Core/Application'], (logger, app) => {
this.app.container.singleton('StouderIO/Scheduler', () => {
return new Scheduler_1.Scheduler(logger, app);
});
});
}
async boot() {
const scheduler = this.app.container.use('StouderIO/Scheduler');
await scheduler.loadTasks();
}
async ready() {
const scheduler = this.app.container.use('StouderIO/Scheduler');
if (this.app.environment === 'console') {
return;
}
if (scheduler.tasks.size === 0) {
this.app.logger.info("no tasks found, scheduler didn't start");
return;
}
await scheduler.start();
this.app.logger.info(`started scheduler, ${scheduler.tasks.size} task${scheduler.tasks.size > 0 ? 's' : ''}`);
}
}
exports.default = SchedulerProvider;