UNPKG

@stouder-io/adonis-scheduler

Version:
33 lines (32 loc) 1.19 kB
"use strict"; 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;