UNPKG

@eggjs/tegg-schedule-plugin

Version:

schedule decorator for egg

50 lines 2.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ScheduleManager = void 0; const tegg_1 = require("@eggjs/tegg"); /** * Manager class to track registered schedules and handle cleanup */ class ScheduleManager { constructor(app) { // Map of schedule key to EggPrototype this.registeredSchedules = new Map(); this.app = app; } /** * Register a schedule and track it */ register(proto, scheduleItem) { const { key } = scheduleItem; this.registeredSchedules.set(key, proto); this.app.scheduleWorker.registerSchedule(scheduleItem); } /** * Unregister a single schedule by prototype */ unregister(proto) { const key = proto.getMetaData(tegg_1.PrototypeUtil.FILE_PATH); if (this.registeredSchedules.has(key)) { this.app.scheduleWorker.unregisterSchedule(key); this.registeredSchedules.delete(key); } } /** * Unregister all tracked schedules * Called during app beforeClose */ unregisterAll() { for (const key of this.registeredSchedules.keys()) { this.app.scheduleWorker.unregisterSchedule(key); } this.registeredSchedules.clear(); } /** * Get the count of registered schedules */ get size() { return this.registeredSchedules.size; } } exports.ScheduleManager = ScheduleManager; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiU2NoZWR1bGVNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHNDQUE0QztBQUU1Qzs7R0FFRztBQUNILE1BQWEsZUFBZTtJQUsxQixZQUFZLEdBQWdCO1FBSDVCLHNDQUFzQztRQUNyQix3QkFBbUIsR0FBOEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUcxRSxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsS0FBbUIsRUFBRSxZQUEwRDtRQUN0RixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsWUFBWSxDQUFDO1FBQzdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxHQUFXLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVUsQ0FBQyxLQUFtQjtRQUM1QixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLG9CQUFhLENBQUMsU0FBUyxDQUFXLENBQUM7UUFDakUsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLEdBQVcsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWE7UUFDWCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxHQUFXLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQTlDRCwwQ0E4Q0MifQ==