@eggjs/schedule 5.0.1 → 6.0.0-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -14
- package/dist/agent.d.ts +13 -0
- package/dist/agent.js +32 -0
- package/dist/app/extend/agent.d.ts +22 -0
- package/dist/app/extend/agent.js +32 -0
- package/dist/app/extend/application.d.ts +16 -0
- package/dist/app/extend/application.js +18 -0
- package/dist/app/extend/application.unittest.d.ts +13 -0
- package/dist/app/extend/application.unittest.js +43 -0
- package/dist/app.d.ts +11 -0
- package/dist/app.js +69 -0
- package/dist/config/config.default.d.ts +6 -0
- package/dist/config/config.default.js +13 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +7 -0
- package/dist/lib/load_schedule.d.ts +7 -0
- package/dist/lib/load_schedule.js +61 -0
- package/dist/lib/schedule.d.ts +35 -0
- package/dist/lib/schedule.js +77 -0
- package/dist/lib/schedule_worker.d.ts +14 -0
- package/dist/lib/schedule_worker.js +22 -0
- package/dist/lib/strategy/all.d.ts +8 -0
- package/dist/lib/strategy/all.js +11 -0
- package/dist/lib/strategy/base.d.ts +35 -0
- package/dist/lib/strategy/base.js +73 -0
- package/dist/lib/strategy/timer.d.ts +24 -0
- package/dist/lib/strategy/timer.js +71 -0
- package/dist/lib/strategy/worker.d.ts +8 -0
- package/dist/lib/strategy/worker.js +11 -0
- package/dist/lib/types.d.ts +44 -0
- package/dist/lib/types.js +1 -0
- package/package.json +51 -55
- package/dist/commonjs/agent.d.ts +0 -7
- package/dist/commonjs/agent.js +0 -32
- package/dist/commonjs/app/extend/agent.d.ts +0 -2
- package/dist/commonjs/app/extend/agent.js +0 -29
- package/dist/commonjs/app/extend/application.d.ts +0 -2
- package/dist/commonjs/app/extend/application.js +0 -16
- package/dist/commonjs/app/extend/application.unittest.d.ts +0 -2
- package/dist/commonjs/app/extend/application.unittest.js +0 -58
- package/dist/commonjs/app.d.ts +0 -6
- package/dist/commonjs/app.js +0 -80
- package/dist/commonjs/config/config.default.d.ts +0 -2
- package/dist/commonjs/config/config.default.js +0 -17
- package/dist/commonjs/index.d.ts +0 -1
- package/dist/commonjs/index.js +0 -18
- package/dist/commonjs/lib/load_schedule.d.ts +0 -3
- package/dist/commonjs/lib/load_schedule.js +0 -71
- package/dist/commonjs/lib/schedule.d.ts +0 -31
- package/dist/commonjs/lib/schedule.js +0 -89
- package/dist/commonjs/lib/schedule_worker.d.ts +0 -10
- package/dist/commonjs/lib/schedule_worker.js +0 -22
- package/dist/commonjs/lib/strategy/all.d.ts +0 -4
- package/dist/commonjs/lib/strategy/all.js +0 -11
- package/dist/commonjs/lib/strategy/base.d.ts +0 -30
- package/dist/commonjs/lib/strategy/base.js +0 -79
- package/dist/commonjs/lib/strategy/timer.d.ts +0 -20
- package/dist/commonjs/lib/strategy/timer.js +0 -99
- package/dist/commonjs/lib/strategy/worker.d.ts +0 -4
- package/dist/commonjs/lib/strategy/worker.js +0 -11
- package/dist/commonjs/lib/types.d.ts +0 -53
- package/dist/commonjs/lib/types.js +0 -3
- package/dist/commonjs/package.json +0 -3
- package/dist/esm/agent.d.ts +0 -7
- package/dist/esm/agent.js +0 -29
- package/dist/esm/app/extend/agent.d.ts +0 -2
- package/dist/esm/app/extend/agent.js +0 -27
- package/dist/esm/app/extend/application.d.ts +0 -2
- package/dist/esm/app/extend/application.js +0 -14
- package/dist/esm/app/extend/application.unittest.d.ts +0 -2
- package/dist/esm/app/extend/application.unittest.js +0 -53
- package/dist/esm/app.d.ts +0 -6
- package/dist/esm/app.js +0 -77
- package/dist/esm/config/config.default.d.ts +0 -2
- package/dist/esm/config/config.default.js +0 -15
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/lib/load_schedule.d.ts +0 -3
- package/dist/esm/lib/load_schedule.js +0 -65
- package/dist/esm/lib/schedule.d.ts +0 -31
- package/dist/esm/lib/schedule.js +0 -85
- package/dist/esm/lib/schedule_worker.d.ts +0 -10
- package/dist/esm/lib/schedule_worker.js +0 -18
- package/dist/esm/lib/strategy/all.d.ts +0 -4
- package/dist/esm/lib/strategy/all.js +0 -7
- package/dist/esm/lib/strategy/base.d.ts +0 -30
- package/dist/esm/lib/strategy/base.js +0 -75
- package/dist/esm/lib/strategy/timer.d.ts +0 -20
- package/dist/esm/lib/strategy/timer.js +0 -92
- package/dist/esm/lib/strategy/worker.d.ts +0 -4
- package/dist/esm/lib/strategy/worker.js +0 -7
- package/dist/esm/lib/types.d.ts +0 -53
- package/dist/esm/lib/types.js +0 -2
- package/dist/esm/package.json +0 -3
- package/dist/package.json +0 -4
- package/src/agent.ts +0 -36
- package/src/app/extend/agent.ts +0 -30
- package/src/app/extend/application.ts +0 -16
- package/src/app/extend/application.unittest.ts +0 -57
- package/src/app.ts +0 -92
- package/src/config/config.default.ts +0 -17
- package/src/index.ts +0 -1
- package/src/lib/load_schedule.ts +0 -74
- package/src/lib/schedule.ts +0 -100
- package/src/lib/schedule_worker.ts +0 -24
- package/src/lib/strategy/all.ts +0 -7
- package/src/lib/strategy/base.ts +0 -91
- package/src/lib/strategy/timer.ts +0 -106
- package/src/lib/strategy/worker.ts +0 -7
- package/src/lib/types.ts +0 -58
package/dist/commonjs/app.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const node_util_1 = require("node:util");
|
|
4
|
-
const debug = (0, node_util_1.debuglog)('@eggjs/schedule/app');
|
|
5
|
-
class Boot {
|
|
6
|
-
#app;
|
|
7
|
-
#logger;
|
|
8
|
-
constructor(app) {
|
|
9
|
-
this.#app = app;
|
|
10
|
-
this.#logger = app.getLogger('scheduleLogger');
|
|
11
|
-
}
|
|
12
|
-
async configDidLoad() {
|
|
13
|
-
const scheduleWorker = this.#app.scheduleWorker;
|
|
14
|
-
await scheduleWorker.init();
|
|
15
|
-
// log schedule list
|
|
16
|
-
for (const s in scheduleWorker.scheduleItems) {
|
|
17
|
-
const schedule = scheduleWorker.scheduleItems[s];
|
|
18
|
-
if (!schedule.schedule.disable) {
|
|
19
|
-
this.#logger.info('[@eggjs/schedule]: register schedule %s', schedule.key);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
// register schedule event
|
|
23
|
-
this.#app.messenger.on('egg-schedule', async (info) => {
|
|
24
|
-
debug('app got "egg-schedule" message: %o', info);
|
|
25
|
-
const { id, key } = info;
|
|
26
|
-
this.#logger.debug(`[Job#${id}] ${key} await app ready`);
|
|
27
|
-
await this.#app.ready();
|
|
28
|
-
const schedule = scheduleWorker.scheduleItems[key];
|
|
29
|
-
this.#logger.debug(`[Job#${id}] ${key} task received by app`);
|
|
30
|
-
if (!schedule) {
|
|
31
|
-
this.#logger.warn(`[Job#${id}] ${key} unknown task`);
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
/* istanbul ignore next */
|
|
35
|
-
if (schedule.schedule.disable) {
|
|
36
|
-
this.#logger.warn(`[Job#${id}] ${key} disable`);
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
this.#logger.info(`[Job#${id}] ${key} executing by app`);
|
|
40
|
-
// run with anonymous context
|
|
41
|
-
const ctx = this.#app.createAnonymousContext({
|
|
42
|
-
method: 'SCHEDULE',
|
|
43
|
-
url: `/__schedule?path=${key}&${schedule.scheduleQueryString}`,
|
|
44
|
-
});
|
|
45
|
-
const start = Date.now();
|
|
46
|
-
let success;
|
|
47
|
-
let e;
|
|
48
|
-
try {
|
|
49
|
-
// execute
|
|
50
|
-
await this.#app.ctxStorage.run(ctx, async () => {
|
|
51
|
-
return await schedule.task(ctx, ...info.args);
|
|
52
|
-
});
|
|
53
|
-
success = true;
|
|
54
|
-
}
|
|
55
|
-
catch (err) {
|
|
56
|
-
success = false;
|
|
57
|
-
e = err;
|
|
58
|
-
}
|
|
59
|
-
const rt = Date.now() - start;
|
|
60
|
-
const msg = `[Job#${id}] ${key} execute ${success ? 'succeed' : 'failed'}, used ${rt}ms.`;
|
|
61
|
-
if (success) {
|
|
62
|
-
this.#logger.info(msg);
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
this.#logger.error(msg, e);
|
|
66
|
-
}
|
|
67
|
-
// notify agent job finish
|
|
68
|
-
this.#app.messenger.sendToAgent('egg-schedule', {
|
|
69
|
-
...info,
|
|
70
|
-
success,
|
|
71
|
-
workerId: process.pid,
|
|
72
|
-
rt,
|
|
73
|
-
message: e?.message,
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
debug('configDidLoad');
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
exports.default = Boot;
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUFxQztBQU1yQyxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMscUJBQXFCLENBQUMsQ0FBQztBQUU5QyxNQUFxQixJQUFJO0lBQ3ZCLElBQUksQ0FBYztJQUNsQixPQUFPLENBQVk7SUFDbkIsWUFBWSxHQUFnQjtRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWE7UUFDakIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDaEQsTUFBTSxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFNUIsb0JBQW9CO1FBQ3BCLEtBQUssTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdDLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHlDQUF5QyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3RSxDQUFDO1FBQ0gsQ0FBQztRQUVELDBCQUEwQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBQyxJQUFJLEVBQUMsRUFBRTtZQUNsRCxLQUFLLENBQUMsb0NBQW9DLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEQsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENB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
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = () => {
|
|
4
|
-
const config = {};
|
|
5
|
-
config.customLogger = {
|
|
6
|
-
scheduleLogger: {
|
|
7
|
-
consoleLevel: 'NONE',
|
|
8
|
-
file: 'egg-schedule.log',
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
|
-
config.schedule = {
|
|
12
|
-
// custom additional directory, full path
|
|
13
|
-
directory: [],
|
|
14
|
-
};
|
|
15
|
-
return config;
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0JBQWUsR0FBRyxFQUFFO0lBQ2xCLE1BQU0sTUFBTSxHQUFHLEVBQXlCLENBQUM7SUFFekMsTUFBTSxDQUFDLFlBQVksR0FBRztRQUNwQixjQUFjLEVBQUU7WUFDZCxZQUFZLEVBQUUsTUFBTTtZQUNwQixJQUFJLEVBQUUsa0JBQWtCO1NBQ3pCO0tBQ0YsQ0FBQztJQUVGLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIseUNBQXlDO1FBQ3pDLFNBQVMsRUFBRSxFQUFFO0tBQ2QsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyJ9
|
package/dist/commonjs/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './lib/types.js';
|
package/dist/commonjs/index.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./lib/types.js"), exports);
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUErQiJ9
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.loadSchedule = loadSchedule;
|
|
7
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
-
const node_assert_1 = __importDefault(require("node:assert"));
|
|
9
|
-
const node_querystring_1 = require("node:querystring");
|
|
10
|
-
const is_type_of_1 = require("is-type-of");
|
|
11
|
-
const utils_1 = require("@eggjs/utils");
|
|
12
|
-
function getScheduleLoader(app) {
|
|
13
|
-
return class ScheduleLoader extends app.loader.FileLoader {
|
|
14
|
-
async load() {
|
|
15
|
-
const target = this.options.target;
|
|
16
|
-
const items = await this.parse();
|
|
17
|
-
for (const item of items) {
|
|
18
|
-
const schedule = item.exports;
|
|
19
|
-
const fullpath = item.fullpath;
|
|
20
|
-
const scheduleConfig = schedule.schedule;
|
|
21
|
-
(0, node_assert_1.default)(scheduleConfig, `schedule(${fullpath}): must have "schedule" and "task" properties`);
|
|
22
|
-
(0, node_assert_1.default)((0, is_type_of_1.isClass)(schedule) || (0, is_type_of_1.isFunction)(schedule.task), `schedule(${fullpath}: \`schedule.task\` should be function or \`schedule\` should be class`);
|
|
23
|
-
let task;
|
|
24
|
-
if ((0, is_type_of_1.isClass)(schedule)) {
|
|
25
|
-
(0, node_assert_1.default)(!(0, is_type_of_1.isGeneratorFunction)(schedule.prototype.subscribe), `schedule(${fullpath}): "schedule" generator function is not support, should use async function instead`);
|
|
26
|
-
task = async (ctx, ...args) => {
|
|
27
|
-
const instance = new schedule(ctx);
|
|
28
|
-
// s.subscribe = app.toAsyncFunction(s.subscribe);
|
|
29
|
-
return instance.subscribe(...args);
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
(0, node_assert_1.default)(!(0, is_type_of_1.isGeneratorFunction)(schedule.task), `schedule(${fullpath}): "task" generator function is not support, should use async function instead`);
|
|
34
|
-
task = schedule.task;
|
|
35
|
-
// task = app.toAsyncFunction(schedule.task);
|
|
36
|
-
}
|
|
37
|
-
const env = app.config.env;
|
|
38
|
-
const envList = schedule.schedule.env;
|
|
39
|
-
if (Array.isArray(envList) && !envList.includes(env)) {
|
|
40
|
-
app.coreLogger.info(`[@eggjs/schedule]: ignore schedule ${fullpath} due to \`schedule.env\` not match`);
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
// handle symlink case
|
|
44
|
-
const realFullpath = (0, utils_1.importResolve)(fullpath);
|
|
45
|
-
target[realFullpath] = {
|
|
46
|
-
schedule: scheduleConfig,
|
|
47
|
-
scheduleQueryString: (0, node_querystring_1.stringify)(scheduleConfig),
|
|
48
|
-
task,
|
|
49
|
-
key: realFullpath,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
return target;
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
async function loadSchedule(app) {
|
|
57
|
-
const dirs = [
|
|
58
|
-
...app.loader.getLoadUnits().map(unit => node_path_1.default.join(unit.path, 'app/schedule')),
|
|
59
|
-
...app.config.schedule.directory,
|
|
60
|
-
];
|
|
61
|
-
const Loader = getScheduleLoader(app);
|
|
62
|
-
const schedules = {};
|
|
63
|
-
await new Loader({
|
|
64
|
-
directory: dirs,
|
|
65
|
-
target: schedules,
|
|
66
|
-
inject: app,
|
|
67
|
-
}).load();
|
|
68
|
-
Reflect.set(app, 'schedules', schedules);
|
|
69
|
-
return schedules;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZF9zY2hlZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbG9hZF9zY2hlZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQTBEQSxvQ0FlQztBQXpFRCwwREFBNkI7QUFDN0IsOERBQWlDO0FBQ2pDLHVEQUE2QztBQUM3QywyQ0FBc0U7QUFDdEUsd0NBQTZDO0FBSTdDLFNBQVMsaUJBQWlCLENBQUMsR0FBdUI7SUFDaEQsT0FBTyxNQUFNLGNBQWUsU0FBUSxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVU7UUFDdkQsS0FBSyxDQUFDLElBQUk7WUFDUixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQXlDLENBQUM7WUFDdEUsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQWlFLENBQUM7Z0JBQ3hGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQy9CLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ3pDLElBQUEscUJBQU0sRUFBQyxjQUFjLEVBQUUsWUFBWSxRQUFRLCtDQUErQyxDQUFDLENBQUM7Z0JBQzVGLElBQUEscUJBQU0sRUFBQyxJQUFBLG9CQUFPLEVBQUMsUUFBUSxDQUFDLElBQUksSUFBQSx1QkFBVSxFQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFDbkQsWUFBWSxRQUFRLHdFQUF3RSxDQUFDLENBQUM7Z0JBRWhHLElBQUksSUFBcUIsQ0FBQztnQkFDMUIsSUFBSSxJQUFBLG9CQUFPLEVBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDdEIsSUFBQSxxQkFBTSxFQUFDLENBQUMsSUFBQSxnQ0FBbUIsRUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFNB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
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { Agent } from 'egg';
|
|
2
|
-
import type { EggScheduleItem, EggScheduleJobInfo } from './types.js';
|
|
3
|
-
import type { BaseStrategy } from './strategy/base.js';
|
|
4
|
-
export declare class Schedule {
|
|
5
|
-
#private;
|
|
6
|
-
closed: boolean;
|
|
7
|
-
constructor(agent: Agent);
|
|
8
|
-
/**
|
|
9
|
-
* register a custom Schedule Strategy
|
|
10
|
-
* @param {String} type - strategy type
|
|
11
|
-
* @param {Strategy} clz - Strategy class
|
|
12
|
-
*/
|
|
13
|
-
use(type: string, clz: typeof BaseStrategy): void;
|
|
14
|
-
/**
|
|
15
|
-
* load all schedule jobs, then initialize and register speical strategy
|
|
16
|
-
*/
|
|
17
|
-
init(): Promise<void>;
|
|
18
|
-
registerSchedule(scheduleItem: EggScheduleItem): void;
|
|
19
|
-
unregisterSchedule(key: string): boolean;
|
|
20
|
-
/**
|
|
21
|
-
* job finish event handler
|
|
22
|
-
*
|
|
23
|
-
* @param {Object} info - { id, key, success, message, workerId }
|
|
24
|
-
*/
|
|
25
|
-
onJobFinish(info: EggScheduleJobInfo): void;
|
|
26
|
-
/**
|
|
27
|
-
* start schedule
|
|
28
|
-
*/
|
|
29
|
-
start(): void;
|
|
30
|
-
close(): void;
|
|
31
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Schedule = void 0;
|
|
4
|
-
const node_util_1 = require("node:util");
|
|
5
|
-
const load_schedule_js_1 = require("./load_schedule.js");
|
|
6
|
-
const debug = (0, node_util_1.debuglog)('@eggjs/schedule/lib/schedule');
|
|
7
|
-
class Schedule {
|
|
8
|
-
closed = false;
|
|
9
|
-
#agent;
|
|
10
|
-
#logger;
|
|
11
|
-
#strategyClassMap = new Map();
|
|
12
|
-
#strategyInstanceMap = new Map();
|
|
13
|
-
constructor(agent) {
|
|
14
|
-
this.#agent = agent;
|
|
15
|
-
this.#logger = agent.getLogger('scheduleLogger');
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* register a custom Schedule Strategy
|
|
19
|
-
* @param {String} type - strategy type
|
|
20
|
-
* @param {Strategy} clz - Strategy class
|
|
21
|
-
*/
|
|
22
|
-
use(type, clz) {
|
|
23
|
-
this.#strategyClassMap.set(type, clz);
|
|
24
|
-
debug('use type: %o', type);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* load all schedule jobs, then initialize and register speical strategy
|
|
28
|
-
*/
|
|
29
|
-
async init() {
|
|
30
|
-
const scheduleItems = await (0, load_schedule_js_1.loadSchedule)(this.#agent);
|
|
31
|
-
for (const scheduleItem of Object.values(scheduleItems)) {
|
|
32
|
-
this.registerSchedule(scheduleItem);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
registerSchedule(scheduleItem) {
|
|
36
|
-
const { key, schedule } = scheduleItem;
|
|
37
|
-
const type = schedule.type;
|
|
38
|
-
if (schedule.disable) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
// find Strategy by type
|
|
42
|
-
const Strategy = this.#strategyClassMap.get(type);
|
|
43
|
-
if (!Strategy) {
|
|
44
|
-
const err = new Error(`schedule type [${type}] is not defined`);
|
|
45
|
-
err.name = 'EggScheduleError';
|
|
46
|
-
throw err;
|
|
47
|
-
}
|
|
48
|
-
// Initialize strategy and register
|
|
49
|
-
const instance = new Strategy(schedule, this.#agent, key);
|
|
50
|
-
this.#strategyInstanceMap.set(key, instance);
|
|
51
|
-
debug('registerSchedule type: %o, config: %o, key: %o', type, schedule, key);
|
|
52
|
-
}
|
|
53
|
-
unregisterSchedule(key) {
|
|
54
|
-
debug('unregisterSchedule key: %o', key);
|
|
55
|
-
return this.#strategyInstanceMap.delete(key);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* job finish event handler
|
|
59
|
-
*
|
|
60
|
-
* @param {Object} info - { id, key, success, message, workerId }
|
|
61
|
-
*/
|
|
62
|
-
onJobFinish(info) {
|
|
63
|
-
this.#logger.debug(`[Job#${info.id}] ${info.key} finish event received by agent from worker#${info.workerId}`);
|
|
64
|
-
const instance = this.#strategyInstanceMap.get(info.key);
|
|
65
|
-
/* istanbul ignore else */
|
|
66
|
-
if (instance) {
|
|
67
|
-
instance.onJobFinish(info);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* start schedule
|
|
72
|
-
*/
|
|
73
|
-
start() {
|
|
74
|
-
debug('start');
|
|
75
|
-
this.closed = false;
|
|
76
|
-
for (const instance of this.#strategyInstanceMap.values()) {
|
|
77
|
-
instance.start();
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
close() {
|
|
81
|
-
this.closed = true;
|
|
82
|
-
for (const instance of this.#strategyInstanceMap.values()) {
|
|
83
|
-
instance.close();
|
|
84
|
-
}
|
|
85
|
-
debug('close');
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
exports.Schedule = Schedule;
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3NjaGVkdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUFxQztBQUVyQyx5REFBa0Q7QUFJbEQsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBUSxFQUFDLDhCQUE4QixDQUFDLENBQUM7QUFFdkQsTUFBYSxRQUFRO0lBQ25CLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFZixNQUFNLENBQVE7SUFDZCxPQUFPLENBQVk7SUFDbkIsaUJBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7SUFDM0Qsb0JBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7SUFFdkQsWUFBWSxLQUFZO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsR0FBRyxDQUFDLElBQVksRUFBRSxHQUF3QjtRQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN0QyxLQUFLLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFBLCtCQUFZLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELEtBQUssTUFBTSxZQUFZLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ3hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLFlBQTZCO1FBQzVDLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsWUFBWSxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsT0FBTztRQUNULENBQUM7UUFFRCx3QkFBd0I7UUFDeEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFLLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2hFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUM7WUFDOUIsTUFBTSxHQUFHLENBQUM7UUFDWixDQUFDO1FBRUQsbUNBQW1DO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLEtBQUssQ0FBQyxnREFBZ0QsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFXO1FBQzVCLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsSUFBd0I7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLCtDQUErQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMvRyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6RCwwQkFBMEI7UUFDMUIsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQzFELFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQzFELFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixDQUFDO1FBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQTNGRCw0QkEyRkMifQ==
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Application } from 'egg';
|
|
2
|
-
import type { EggScheduleItem } from './types.js';
|
|
3
|
-
export declare class ScheduleWorker {
|
|
4
|
-
#private;
|
|
5
|
-
scheduleItems: Record<string, EggScheduleItem>;
|
|
6
|
-
constructor(app: Application);
|
|
7
|
-
init(): Promise<void>;
|
|
8
|
-
registerSchedule(scheduleItem: EggScheduleItem): void;
|
|
9
|
-
unregisterSchedule(key: string): void;
|
|
10
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ScheduleWorker = void 0;
|
|
4
|
-
const load_schedule_js_1 = require("./load_schedule.js");
|
|
5
|
-
class ScheduleWorker {
|
|
6
|
-
#app;
|
|
7
|
-
scheduleItems = {};
|
|
8
|
-
constructor(app) {
|
|
9
|
-
this.#app = app;
|
|
10
|
-
}
|
|
11
|
-
async init() {
|
|
12
|
-
this.scheduleItems = await (0, load_schedule_js_1.loadSchedule)(this.#app);
|
|
13
|
-
}
|
|
14
|
-
registerSchedule(scheduleItem) {
|
|
15
|
-
this.scheduleItems[scheduleItem.key] = scheduleItem;
|
|
16
|
-
}
|
|
17
|
-
unregisterSchedule(key) {
|
|
18
|
-
delete this.scheduleItems[key];
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
exports.ScheduleWorker = ScheduleWorker;
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVfd29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zY2hlZHVsZV93b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBQWtEO0FBR2xELE1BQWEsY0FBYztJQUN6QixJQUFJLENBQWM7SUFDbEIsYUFBYSxHQUFvQyxFQUFFLENBQUM7SUFFcEQsWUFBWSxHQUFnQjtRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sSUFBQSwrQkFBWSxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsWUFBNkI7UUFDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDO0lBQ3RELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFXO1FBQzVCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFuQkQsd0NBbUJDIn0=
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AllStrategy = void 0;
|
|
4
|
-
const timer_js_1 = require("./timer.js");
|
|
5
|
-
class AllStrategy extends timer_js_1.TimerStrategy {
|
|
6
|
-
handler() {
|
|
7
|
-
this.sendAll();
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
exports.AllStrategy = AllStrategy;
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zdHJhdGVneS9hbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQTJDO0FBRTNDLE1BQWEsV0FBWSxTQUFRLHdCQUFhO0lBQzVDLE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBSkQsa0NBSUMifQ==
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { Agent, EggLogger } from 'egg';
|
|
2
|
-
import type { EggScheduleConfig, EggScheduleJobInfo } from '../types.js';
|
|
3
|
-
export declare class BaseStrategy {
|
|
4
|
-
protected agent: Agent;
|
|
5
|
-
protected scheduleConfig: EggScheduleConfig;
|
|
6
|
-
protected key: string;
|
|
7
|
-
protected logger: EggLogger;
|
|
8
|
-
protected closed: boolean;
|
|
9
|
-
count: number;
|
|
10
|
-
constructor(scheduleConfig: EggScheduleConfig, agent: Agent, key: string);
|
|
11
|
-
/** keep compatibility */
|
|
12
|
-
get schedule(): EggScheduleConfig;
|
|
13
|
-
start(): void;
|
|
14
|
-
close(): void;
|
|
15
|
-
onJobStart(_info: EggScheduleJobInfo): void;
|
|
16
|
-
onJobFinish(_info: EggScheduleJobInfo): void;
|
|
17
|
-
/**
|
|
18
|
-
* trigger one worker
|
|
19
|
-
*
|
|
20
|
-
* @param {...any} args - pass to job task
|
|
21
|
-
*/
|
|
22
|
-
sendOne(...args: any[]): void;
|
|
23
|
-
/**
|
|
24
|
-
* trigger all worker
|
|
25
|
-
*
|
|
26
|
-
* @param {...any} args - pass to job task
|
|
27
|
-
*/
|
|
28
|
-
sendAll(...args: any[]): void;
|
|
29
|
-
getSeqId(): string;
|
|
30
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseStrategy = void 0;
|
|
4
|
-
class BaseStrategy {
|
|
5
|
-
agent;
|
|
6
|
-
scheduleConfig;
|
|
7
|
-
key;
|
|
8
|
-
logger;
|
|
9
|
-
closed = false;
|
|
10
|
-
count = 0;
|
|
11
|
-
constructor(scheduleConfig, agent, key) {
|
|
12
|
-
this.agent = agent;
|
|
13
|
-
this.key = key;
|
|
14
|
-
this.scheduleConfig = scheduleConfig;
|
|
15
|
-
this.logger = this.agent.getLogger('scheduleLogger');
|
|
16
|
-
}
|
|
17
|
-
/** keep compatibility */
|
|
18
|
-
get schedule() {
|
|
19
|
-
return this.scheduleConfig;
|
|
20
|
-
}
|
|
21
|
-
start() {
|
|
22
|
-
// empty loop by default
|
|
23
|
-
}
|
|
24
|
-
close() {
|
|
25
|
-
this.closed = true;
|
|
26
|
-
}
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
28
|
-
onJobStart(_info) { }
|
|
29
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
30
|
-
onJobFinish(_info) { }
|
|
31
|
-
/**
|
|
32
|
-
* trigger one worker
|
|
33
|
-
*
|
|
34
|
-
* @param {...any} args - pass to job task
|
|
35
|
-
*/
|
|
36
|
-
sendOne(...args) {
|
|
37
|
-
/* istanbul ignore next */
|
|
38
|
-
if (this.agent.schedule.closed) {
|
|
39
|
-
this.logger.warn(`${this.key} skip due to schedule closed`);
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
this.count++;
|
|
43
|
-
const info = {
|
|
44
|
-
key: this.key,
|
|
45
|
-
id: this.getSeqId(),
|
|
46
|
-
args,
|
|
47
|
-
};
|
|
48
|
-
this.logger.info(`[Job#${info.id}] ${info.key} triggered, send random by agent`);
|
|
49
|
-
this.agent.messenger.sendRandom('egg-schedule', info);
|
|
50
|
-
this.onJobStart(info);
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* trigger all worker
|
|
54
|
-
*
|
|
55
|
-
* @param {...any} args - pass to job task
|
|
56
|
-
*/
|
|
57
|
-
sendAll(...args) {
|
|
58
|
-
/* istanbul ignore next */
|
|
59
|
-
if (this.agent.schedule.closed) {
|
|
60
|
-
this.logger.warn(`${this.key} skip due to schedule closed`);
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
this.count++;
|
|
64
|
-
const info = {
|
|
65
|
-
key: this.key,
|
|
66
|
-
id: this.getSeqId(),
|
|
67
|
-
args,
|
|
68
|
-
};
|
|
69
|
-
this.logger.info(`[Job#${info.id}] ${info.key} triggered, send all by agent`);
|
|
70
|
-
// send to all workers
|
|
71
|
-
this.agent.messenger.send('egg-schedule', info);
|
|
72
|
-
this.onJobStart(info);
|
|
73
|
-
}
|
|
74
|
-
getSeqId() {
|
|
75
|
-
return `${Date.now()}${process.hrtime().join('')}${this.count}`;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
exports.BaseStrategy = BaseStrategy;
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc3RyYXRlZ3kvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxNQUFhLFlBQVk7SUFDYixLQUFLLENBQVE7SUFDYixjQUFjLENBQW9CO0lBQ2xDLEdBQUcsQ0FBUztJQUNaLE1BQU0sQ0FBWTtJQUNsQixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFVixZQUFZLGNBQWlDLEVBQUUsS0FBWSxFQUFFLEdBQVc7UUFDdEUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELHlCQUF5QjtJQUN6QixJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUs7UUFDSCx3QkFBd0I7SUFDMUIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNyQixDQUFDO0lBRUQsNkRBQTZEO0lBQzdELFVBQVUsQ0FBQyxLQUF5QixJQUFHLENBQUM7SUFFeEMsNkRBQTZEO0lBQzdELFdBQVcsQ0FBQyxLQUF5QixJQUFHLENBQUM7SUFFekM7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxHQUFHLElBQVc7UUFDcEIsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyw4QkFBOEIsQ0FBQyxDQUFDO1lBQzVELE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWIsTUFBTSxJQUFJLEdBQUc7WUFDWCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNuQixJQUFJO1NBQ2lCLENBQUM7UUFFeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLGtDQUFrQyxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLEdBQUcsSUFBVztRQUNwQiwwQkFBMEI7UUFDMUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLDhCQUE4QixDQUFDLENBQUM7WUFDNUQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFYixNQUFNLElBQUksR0FBRztZQUNYLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ25CLElBQUk7U0FDaUIsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEdBQUcsK0JBQStCLENBQUMsQ0FBQztRQUM5RSxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0NBQ0Y7QUF2RkQsb0NBdUZDIn0=
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { type CronExpression } from 'cron-parser';
|
|
2
|
-
import safeTimers from 'safe-timers';
|
|
3
|
-
import type { Agent } from 'egg';
|
|
4
|
-
import type { EggScheduleConfig } from '../types.js';
|
|
5
|
-
import { BaseStrategy } from './base.js';
|
|
6
|
-
export declare abstract class TimerStrategy extends BaseStrategy {
|
|
7
|
-
#private;
|
|
8
|
-
protected cronInstance?: CronExpression;
|
|
9
|
-
constructor(scheduleConfig: EggScheduleConfig, agent: Agent, key: string);
|
|
10
|
-
protected handler(): void;
|
|
11
|
-
start(): void;
|
|
12
|
-
onJobStart(): void;
|
|
13
|
-
/**
|
|
14
|
-
* calculate next tick
|
|
15
|
-
*
|
|
16
|
-
* @return {Number|undefined} time interval, if out of range then return `undefined`
|
|
17
|
-
*/
|
|
18
|
-
protected getNextTick(): number | undefined;
|
|
19
|
-
protected safeTimeout(handler: () => void, delay: number, ...args: any[]): number | safeTimers.Timeout;
|
|
20
|
-
}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.TimerStrategy = void 0;
|
|
7
|
-
const node_assert_1 = __importDefault(require("node:assert"));
|
|
8
|
-
const cron_parser_1 = require("cron-parser");
|
|
9
|
-
const humanize_ms_1 = require("humanize-ms");
|
|
10
|
-
const safe_timers_1 = __importDefault(require("safe-timers"));
|
|
11
|
-
const utility_1 = require("utility");
|
|
12
|
-
const base_js_1 = require("./base.js");
|
|
13
|
-
class TimerStrategy extends base_js_1.BaseStrategy {
|
|
14
|
-
cronInstance;
|
|
15
|
-
constructor(scheduleConfig, agent, key) {
|
|
16
|
-
super(scheduleConfig, agent, key);
|
|
17
|
-
const { interval, cron, cronOptions, immediate } = this.scheduleConfig;
|
|
18
|
-
(0, node_assert_1.default)(interval || cron || immediate, `[@eggjs/schedule] ${this.key} \`schedule.interval\` or \`schedule.cron\` or \`schedule.immediate\` must be present`);
|
|
19
|
-
// init cron parser
|
|
20
|
-
if (cron) {
|
|
21
|
-
try {
|
|
22
|
-
this.cronInstance = (0, cron_parser_1.parseExpression)(cron, cronOptions);
|
|
23
|
-
}
|
|
24
|
-
catch (err) {
|
|
25
|
-
throw new TypeError(`[@eggjs/schedule] ${this.key} parse cron instruction(${cron}) error: ${err.message}`, { cause: err });
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
handler() {
|
|
30
|
-
throw new TypeError(`[@eggjs/schedule] ${this.key} strategy should override \`handler()\` method`);
|
|
31
|
-
}
|
|
32
|
-
start() {
|
|
33
|
-
/* istanbul ignore next */
|
|
34
|
-
if (this.agent.schedule.closed)
|
|
35
|
-
return;
|
|
36
|
-
if (this.scheduleConfig.immediate) {
|
|
37
|
-
this.logger.info(`[Timer] ${this.key} next time will execute immediate`);
|
|
38
|
-
setImmediate(() => this.handler());
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
this.#scheduleNext();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
#scheduleNext() {
|
|
45
|
-
/* istanbul ignore next */
|
|
46
|
-
if (this.agent.schedule.closed)
|
|
47
|
-
return;
|
|
48
|
-
// get next tick
|
|
49
|
-
const nextTick = this.getNextTick();
|
|
50
|
-
if (nextTick) {
|
|
51
|
-
this.logger.info(`[Timer] ${this.key} next time will execute after ${nextTick}ms at ${(0, utility_1.logDate)(new Date(Date.now() + nextTick))}`);
|
|
52
|
-
this.safeTimeout(() => this.handler(), nextTick);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
this.logger.info(`[Timer] ${this.key} reach endDate, will stop`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
onJobStart() {
|
|
59
|
-
// Next execution will trigger task at a fix rate, regardless of its execution time.
|
|
60
|
-
this.#scheduleNext();
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* calculate next tick
|
|
64
|
-
*
|
|
65
|
-
* @return {Number|undefined} time interval, if out of range then return `undefined`
|
|
66
|
-
*/
|
|
67
|
-
getNextTick() {
|
|
68
|
-
// interval-style
|
|
69
|
-
if (this.scheduleConfig.interval) {
|
|
70
|
-
return (0, humanize_ms_1.ms)(this.scheduleConfig.interval);
|
|
71
|
-
}
|
|
72
|
-
// cron-style
|
|
73
|
-
if (this.cronInstance) {
|
|
74
|
-
// calculate next cron tick
|
|
75
|
-
const now = Date.now();
|
|
76
|
-
let nextTick;
|
|
77
|
-
// loop to find next feature time
|
|
78
|
-
do {
|
|
79
|
-
try {
|
|
80
|
-
const nextInterval = this.cronInstance.next();
|
|
81
|
-
nextTick = nextInterval.getTime();
|
|
82
|
-
}
|
|
83
|
-
catch (err) {
|
|
84
|
-
// Error: Out of the timespan range
|
|
85
|
-
this.logger.info(`[Timer] ${this.key} cron out of the timespan range, error: %s`, err);
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
} while (now >= nextTick);
|
|
89
|
-
return nextTick - now;
|
|
90
|
-
}
|
|
91
|
-
// won\'t run here
|
|
92
|
-
}
|
|
93
|
-
safeTimeout(handler, delay, ...args) {
|
|
94
|
-
const fn = delay < safe_timers_1.default.maxInterval ? setTimeout : safe_timers_1.default.setTimeout;
|
|
95
|
-
return fn(handler, delay, ...args);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
exports.TimerStrategy = TimerStrategy;
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3N0cmF0ZWd5L3RpbWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUFpQztBQUNqQyw2Q0FBbUU7QUFDbkUsNkNBQWlDO0FBQ2pDLDhEQUFxQztBQUNyQyxxQ0FBa0M7QUFHbEMsdUNBQXlDO0FBRXpDLE1BQXNCLGFBQWMsU0FBUSxzQkFBWTtJQUM1QyxZQUFZLENBQWtCO0lBRXhDLFlBQVksY0FBaUMsRUFBRSxLQUFZLEVBQUUsR0FBVztRQUN0RSxLQUFLLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVsQyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUN2RSxJQUFBLHFCQUFNLEVBQUMsUUFBUSxJQUFJLElBQUksSUFBSSxTQUFTLEVBQ2xDLHFCQUFxQixJQUFJLENBQUMsR0FBRyx1RkFBdUYsQ0FBQyxDQUFDO1FBRXhILG1CQUFtQjtRQUNuQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDO2dCQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBQSw2QkFBZSxFQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN6RCxDQUFDO1lBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSxJQUFJLFNBQVMsQ0FDakIscUJBQXFCLElBQUksQ0FBQyxHQUFHLDJCQUEyQixJQUFJLFlBQVksR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUNyRixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3BCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVTLE9BQU87UUFDZixNQUFNLElBQUksU0FBUyxDQUFDLHFCQUFxQixJQUFJLENBQUMsR0FBRyxnREFBZ0QsQ0FBQyxDQUFD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
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WorkerStrategy = void 0;
|
|
4
|
-
const timer_js_1 = require("./timer.js");
|
|
5
|
-
class WorkerStrategy extends timer_js_1.TimerStrategy {
|
|
6
|
-
handler() {
|
|
7
|
-
this.sendOne();
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
exports.WorkerStrategy = WorkerStrategy;
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zdHJhdGVneS93b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQTJDO0FBRTNDLE1BQWEsY0FBZSxTQUFRLHdCQUFhO0lBQy9DLE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBSkQsd0NBSUMifQ==
|