@eggjs/schedule
Version:
schedule plugin for egg, support corn job.
58 lines • 4.54 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const node_util_1 = require("node:util");
const node_path_1 = __importDefault(require("node:path"));
const utils_1 = require("@eggjs/utils");
const debug = (0, node_util_1.debuglog)('@eggjs/schedule/app');
exports.default = {
async runSchedule(schedulePath, ...args) {
debug('[runSchedule] start schedulePath: %o, args: %o', schedulePath, args);
// for test purpose
const config = this.config;
const directory = [
node_path_1.default.join(config.baseDir, 'app/schedule'),
...config.schedule.directory,
];
// resolve real path
if (node_path_1.default.isAbsolute(schedulePath)) {
schedulePath = (0, utils_1.importResolve)(schedulePath);
}
else {
for (const dir of directory) {
const trySchedulePath = node_path_1.default.join(dir, schedulePath);
try {
schedulePath = (0, utils_1.importResolve)(trySchedulePath);
break;
}
catch (err) {
debug('[runSchedule] importResolve %o error: %s', trySchedulePath, err);
}
}
}
debug('[runSchedule] resolve schedulePath: %o', schedulePath);
const scheduleWorker = this.scheduleWorker;
let schedule;
try {
schedule = scheduleWorker.scheduleItems[schedulePath];
if (!schedule) {
throw new TypeError(`Cannot find schedule ${schedulePath}`);
}
}
catch (err) {
err.message = `[@eggjs/schedule] ${err.message}`;
throw err;
}
// run with anonymous context
const ctx = this.createAnonymousContext({
method: 'SCHEDULE',
url: `/__schedule?path=${schedulePath}&${schedule.scheduleQueryString}`,
});
return await this.ctxStorage.run(ctx, async () => {
return await schedule.task(ctx, ...args);
});
},
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24udW5pdHRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9hcHBsaWNhdGlvbi51bml0dGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlDQUFxQztBQUNyQywwREFBNkI7QUFDN0Isd0NBQTZDO0FBSTdDLE1BQU0sS0FBSyxHQUFHLElBQUEsb0JBQVEsRUFBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBRTlDLGtCQUFlO0lBQ2IsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFvQixFQUFFLEdBQUcsSUFBVztRQUNwRCxLQUFLLENBQUMsZ0RBQWdELEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVFLG1CQUFtQjtRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLE1BQU0sU0FBUyxHQUFHO1lBQ2hCLG1CQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDO1lBQ3pDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTO1NBQzdCLENBQUM7UUFFRixvQkFBb0I7UUFDcEIsSUFBSSxtQkFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ2xDLFlBQVksR0FBRyxJQUFBLHFCQUFhLEVBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0MsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUM1QixNQUFNLGVBQWUsR0FBRyxtQkFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBQ3JELElBQUksQ0FBQztvQkFDSCxZQUFZLEdBQUcsSUFBQSxxQkFBYSxFQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUM5QyxNQUFNO2dCQUNSLENBQUM7Z0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDYixLQUFLLENBQUMsMENBQTBDLEVBQUUsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUMxRSxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxLQUFLLENBQUMsd0NBQXdDLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUQsTUFBTSxjQUFjLEdBQW1CLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDM0QsSUFBSSxRQUF5QixDQUFDO1FBQzlCLElBQUksQ0FBQztZQUNILFFBQVEsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDZCxNQUFNLElBQUksU0FBUyxDQUFDLHdCQUF3QixZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBQzlELENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztZQUNsQixHQUFHLENBQUMsT0FBTyxHQUFHLHFCQUFxQixHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakQsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDO1FBRUQsNkJBQTZCO1FBQzdCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztZQUN0QyxNQUFNLEVBQUUsVUFBVTtZQUNsQixHQUFHLEVBQUUsb0JBQW9CLFlBQVksSUFBSSxRQUFRLENBQUMsbUJBQW1CLEVBQUU7U0FDeEUsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMvQyxPQUFPLE1BQU0sUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDSyxDQUFDIn0=