@eggjs/tegg-schedule-plugin
Version:
schedule decorator for egg
50 lines • 2.98 kB
JavaScript
;
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==