@eggjs/schedule 5.0.2 → 6.0.0-beta.15
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 +6 -12
- 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 +46 -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 -107
- package/src/lib/strategy/worker.ts +0 -7
- package/src/lib/types.ts +0 -58
package/dist/esm/agent.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { debuglog } from 'node:util';
|
|
2
|
-
import { WorkerStrategy } from './lib/strategy/worker.js';
|
|
3
|
-
import { AllStrategy } from './lib/strategy/all.js';
|
|
4
|
-
const debug = debuglog('@eggjs/schedule/agent');
|
|
5
|
-
export default class Boot {
|
|
6
|
-
#agent;
|
|
7
|
-
constructor(agent) {
|
|
8
|
-
this.#agent = agent;
|
|
9
|
-
}
|
|
10
|
-
async configDidLoad() {
|
|
11
|
-
// register built-in strategy
|
|
12
|
-
this.#agent.schedule.use('worker', WorkerStrategy);
|
|
13
|
-
this.#agent.schedule.use('all', AllStrategy);
|
|
14
|
-
// wait for other plugin to register custom strategy
|
|
15
|
-
await this.#agent.schedule.init();
|
|
16
|
-
// dispatch job finish event to strategy
|
|
17
|
-
this.#agent.messenger.on('egg-schedule', (info) => {
|
|
18
|
-
// get job info from worker
|
|
19
|
-
this.#agent.schedule.onJobFinish(info);
|
|
20
|
-
});
|
|
21
|
-
debug('configDidLoad');
|
|
22
|
-
}
|
|
23
|
-
async serverDidReady() {
|
|
24
|
-
// start schedule after worker ready
|
|
25
|
-
this.#agent.schedule.start();
|
|
26
|
-
debug('serverDidReady, schedule start');
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3BELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBRWhELE1BQU0sQ0FBQyxPQUFPLE9BQU8sSUFBSTtJQUN2QixNQUFNLENBQVE7SUFDZCxZQUFZLEtBQVk7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhO1FBQ2pCLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFN0Msb0RBQW9EO1FBQ3BELE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbEMsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUF3QixFQUFFLEVBQUU7WUFDcEUsMkJBQTJCO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRiJ9
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { BaseStrategy } from '../../lib/strategy/base.js';
|
|
2
|
-
import { TimerStrategy } from '../../lib/strategy/timer.js';
|
|
3
|
-
import { Schedule } from '../../lib/schedule.js';
|
|
4
|
-
const SCHEDULE = Symbol('agent#schedule');
|
|
5
|
-
export default {
|
|
6
|
-
/**
|
|
7
|
-
* @member agent#ScheduleStrategy
|
|
8
|
-
*/
|
|
9
|
-
ScheduleStrategy: BaseStrategy,
|
|
10
|
-
/**
|
|
11
|
-
* @member agent#TimerScheduleStrategy
|
|
12
|
-
*/
|
|
13
|
-
TimerScheduleStrategy: TimerStrategy,
|
|
14
|
-
/**
|
|
15
|
-
* @member agent#schedule
|
|
16
|
-
*/
|
|
17
|
-
get schedule() {
|
|
18
|
-
if (!this[SCHEDULE]) {
|
|
19
|
-
this[SCHEDULE] = new Schedule(this);
|
|
20
|
-
this.lifecycle.registerBeforeClose(() => {
|
|
21
|
-
return this[SCHEDULE].close();
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
return this[SCHEDULE];
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVqRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUUxQyxlQUFlO0lBQ2I7O09BRUc7SUFDSCxnQkFBZ0IsRUFBRSxZQUFZO0lBRTlCOztPQUVHO0lBQ0gscUJBQXFCLEVBQUUsYUFBYTtJQUVwQzs7T0FFRztJQUNILElBQUksUUFBUTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7Q0FDSyxDQUFDIn0=
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ScheduleWorker } from '../../lib/schedule_worker.js';
|
|
2
|
-
const SCHEDULE_WORKER = Symbol('application#scheduleWorker');
|
|
3
|
-
export default {
|
|
4
|
-
/**
|
|
5
|
-
* @member app#schedule
|
|
6
|
-
*/
|
|
7
|
-
get scheduleWorker() {
|
|
8
|
-
if (!this[SCHEDULE_WORKER]) {
|
|
9
|
-
this[SCHEDULE_WORKER] = new ScheduleWorker(this);
|
|
10
|
-
}
|
|
11
|
-
return this[SCHEDULE_WORKER];
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9hcHBsaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFOUQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFFN0QsZUFBZTtJQUNiOztPQUVHO0lBQ0gsSUFBSSxjQUFjO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDSyxDQUFDIn0=
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { debuglog } from 'node:util';
|
|
2
|
-
import path from 'node:path';
|
|
3
|
-
import { importResolve } from '@eggjs/utils';
|
|
4
|
-
const debug = debuglog('@eggjs/schedule/app');
|
|
5
|
-
export default {
|
|
6
|
-
async runSchedule(schedulePath, ...args) {
|
|
7
|
-
debug('[runSchedule] start schedulePath: %o, args: %o', schedulePath, args);
|
|
8
|
-
// for test purpose
|
|
9
|
-
const config = this.config;
|
|
10
|
-
const directory = [
|
|
11
|
-
path.join(config.baseDir, 'app/schedule'),
|
|
12
|
-
...config.schedule.directory,
|
|
13
|
-
];
|
|
14
|
-
// resolve real path
|
|
15
|
-
if (path.isAbsolute(schedulePath)) {
|
|
16
|
-
schedulePath = importResolve(schedulePath);
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
for (const dir of directory) {
|
|
20
|
-
const trySchedulePath = path.join(dir, schedulePath);
|
|
21
|
-
try {
|
|
22
|
-
schedulePath = importResolve(trySchedulePath);
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
catch (err) {
|
|
26
|
-
debug('[runSchedule] importResolve %o error: %s', trySchedulePath, err);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
debug('[runSchedule] resolve schedulePath: %o', schedulePath);
|
|
31
|
-
const scheduleWorker = this.scheduleWorker;
|
|
32
|
-
let schedule;
|
|
33
|
-
try {
|
|
34
|
-
schedule = scheduleWorker.scheduleItems[schedulePath];
|
|
35
|
-
if (!schedule) {
|
|
36
|
-
throw new TypeError(`Cannot find schedule ${schedulePath}`);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
catch (err) {
|
|
40
|
-
err.message = `[@eggjs/schedule] ${err.message}`;
|
|
41
|
-
throw err;
|
|
42
|
-
}
|
|
43
|
-
// run with anonymous context
|
|
44
|
-
const ctx = this.createAnonymousContext({
|
|
45
|
-
method: 'SCHEDULE',
|
|
46
|
-
url: `/__schedule?path=${schedulePath}&${schedule.scheduleQueryString}`,
|
|
47
|
-
});
|
|
48
|
-
return await this.ctxStorage.run(ctx, async () => {
|
|
49
|
-
return await schedule.task(ctx, ...args);
|
|
50
|
-
});
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24udW5pdHRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9hcHBsaWNhdGlvbi51bml0dGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSTdDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBRTlDLGVBQWU7SUFDYixLQUFLLENBQUMsV0FBVyxDQUFDLFlBQW9CLEVBQUUsR0FBRyxJQUFXO1FBQ3BELEtBQUssQ0FBQyxnREFBZ0QsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUUsbUJBQW1CO1FBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsTUFBTSxTQUFTLEdBQUc7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQztZQUN6QyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUztTQUM3QixDQUFDO1FBRUYsb0JBQW9CO1FBQ3BCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ2xDLFlBQVksR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0MsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLE1BQU0sR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUM1QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDckQsSUFBSSxDQUFDO29CQUNILFlBQVksR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQzlDLE1BQU07Z0JBQ1IsQ0FBQztnQkFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO29CQUNiLEtBQUssQ0FBQywwQ0FBMEMsRUFBRSxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzFFLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELEtBQUssQ0FBQyx3Q0FBd0MsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUM5RCxNQUFNLGNBQWMsR0FBbUIsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMzRCxJQUFJLFFBQXlCLENBQUM7UUFDOUIsSUFBSSxDQUFDO1lBQ0gsUUFBUSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNkLE1BQU0sSUFBSSxTQUFTLENBQUMsd0JBQXdCLFlBQVksRUFBRSxDQUFDLENBQUM7WUFDOUQsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEdBQVEsRUFBRSxDQUFDO1lBQ2xCLEdBQUcsQ0FBQyxPQUFPLEdBQUcscUJBQXFCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqRCxNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUM7UUFFRCw2QkFBNkI7UUFDN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQ3RDLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLEdBQUcsRUFBRSxvQkFBb0IsWUFBWSxJQUFJLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRTtTQUN4RSxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQy9DLE9BQU8sTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNLLENBQUMifQ==
|
package/dist/esm/app.d.ts
DELETED
package/dist/esm/app.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { debuglog } from 'node:util';
|
|
2
|
-
const debug = debuglog('@eggjs/schedule/app');
|
|
3
|
-
export default class Boot {
|
|
4
|
-
#app;
|
|
5
|
-
#logger;
|
|
6
|
-
constructor(app) {
|
|
7
|
-
this.#app = app;
|
|
8
|
-
this.#logger = app.getLogger('scheduleLogger');
|
|
9
|
-
}
|
|
10
|
-
async configDidLoad() {
|
|
11
|
-
const scheduleWorker = this.#app.scheduleWorker;
|
|
12
|
-
await scheduleWorker.init();
|
|
13
|
-
// log schedule list
|
|
14
|
-
for (const s in scheduleWorker.scheduleItems) {
|
|
15
|
-
const schedule = scheduleWorker.scheduleItems[s];
|
|
16
|
-
if (!schedule.schedule.disable) {
|
|
17
|
-
this.#logger.info('[@eggjs/schedule]: register schedule %s', schedule.key);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
// register schedule event
|
|
21
|
-
this.#app.messenger.on('egg-schedule', async (info) => {
|
|
22
|
-
debug('app got "egg-schedule" message: %o', info);
|
|
23
|
-
const { id, key } = info;
|
|
24
|
-
this.#logger.debug(`[Job#${id}] ${key} await app ready`);
|
|
25
|
-
await this.#app.ready();
|
|
26
|
-
const schedule = scheduleWorker.scheduleItems[key];
|
|
27
|
-
this.#logger.debug(`[Job#${id}] ${key} task received by app`);
|
|
28
|
-
if (!schedule) {
|
|
29
|
-
this.#logger.warn(`[Job#${id}] ${key} unknown task`);
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
/* istanbul ignore next */
|
|
33
|
-
if (schedule.schedule.disable) {
|
|
34
|
-
this.#logger.warn(`[Job#${id}] ${key} disable`);
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
this.#logger.info(`[Job#${id}] ${key} executing by app`);
|
|
38
|
-
// run with anonymous context
|
|
39
|
-
const ctx = this.#app.createAnonymousContext({
|
|
40
|
-
method: 'SCHEDULE',
|
|
41
|
-
url: `/__schedule?path=${key}&${schedule.scheduleQueryString}`,
|
|
42
|
-
});
|
|
43
|
-
const start = Date.now();
|
|
44
|
-
let success;
|
|
45
|
-
let e;
|
|
46
|
-
try {
|
|
47
|
-
// execute
|
|
48
|
-
await this.#app.ctxStorage.run(ctx, async () => {
|
|
49
|
-
return await schedule.task(ctx, ...info.args);
|
|
50
|
-
});
|
|
51
|
-
success = true;
|
|
52
|
-
}
|
|
53
|
-
catch (err) {
|
|
54
|
-
success = false;
|
|
55
|
-
e = err;
|
|
56
|
-
}
|
|
57
|
-
const rt = Date.now() - start;
|
|
58
|
-
const msg = `[Job#${id}] ${key} execute ${success ? 'succeed' : 'failed'}, used ${rt}ms.`;
|
|
59
|
-
if (success) {
|
|
60
|
-
this.#logger.info(msg);
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
this.#logger.error(msg, e);
|
|
64
|
-
}
|
|
65
|
-
// notify agent job finish
|
|
66
|
-
this.#app.messenger.sendToAgent('egg-schedule', {
|
|
67
|
-
...info,
|
|
68
|
-
success,
|
|
69
|
-
workerId: process.pid,
|
|
70
|
-
rt,
|
|
71
|
-
message: e?.message,
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
debug('configDidLoad');
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTXJDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sSUFBSTtJQUN2QixJQUFJLENBQWM7SUFDbEIsT0FBTyxDQUFZO0lBQ25CLFlBQVksR0FBZ0I7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhO1FBQ2pCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQ2hELE1BQU0sY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTVCLG9CQUFvQjtRQUNwQixLQUFLLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3QyxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx5Q0FBeUMsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0UsQ0FBQztRQUNILENBQUM7UUFFRCwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxLQUFLLEVBQUMsSUFBSSxFQUFDLEVBQUU7WUFDbEQsS0FBSyxDQUFDLG9DQUFvQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xELE1BQU0sRUFB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
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export default () => {
|
|
2
|
-
const config = {};
|
|
3
|
-
config.customLogger = {
|
|
4
|
-
scheduleLogger: {
|
|
5
|
-
consoleLevel: 'NONE',
|
|
6
|
-
file: 'egg-schedule.log',
|
|
7
|
-
},
|
|
8
|
-
};
|
|
9
|
-
config.schedule = {
|
|
10
|
-
// custom additional directory, full path
|
|
11
|
-
directory: [],
|
|
12
|
-
};
|
|
13
|
-
return config;
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWUsR0FBRyxFQUFFO0lBQ2xCLE1BQU0sTUFBTSxHQUFHLEVBQXlCLENBQUM7SUFFekMsTUFBTSxDQUFDLFlBQVksR0FBRztRQUNwQixjQUFjLEVBQUU7WUFDZCxZQUFZLEVBQUUsTUFBTTtZQUNwQixJQUFJLEVBQUUsa0JBQWtCO1NBQ3pCO0tBQ0YsQ0FBQztJQUVGLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIseUNBQXlDO1FBQ3pDLFNBQVMsRUFBRSxFQUFFO0tBQ2QsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyJ9
|
package/dist/esm/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './lib/types.js';
|
package/dist/esm/index.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import path from 'node:path';
|
|
2
|
-
import assert from 'node:assert';
|
|
3
|
-
import { stringify } from 'node:querystring';
|
|
4
|
-
import { isClass, isFunction, isGeneratorFunction } from 'is-type-of';
|
|
5
|
-
import { importResolve } from '@eggjs/utils';
|
|
6
|
-
function getScheduleLoader(app) {
|
|
7
|
-
return class ScheduleLoader extends app.loader.FileLoader {
|
|
8
|
-
async load() {
|
|
9
|
-
const target = this.options.target;
|
|
10
|
-
const items = await this.parse();
|
|
11
|
-
for (const item of items) {
|
|
12
|
-
const schedule = item.exports;
|
|
13
|
-
const fullpath = item.fullpath;
|
|
14
|
-
const scheduleConfig = schedule.schedule;
|
|
15
|
-
assert(scheduleConfig, `schedule(${fullpath}): must have "schedule" and "task" properties`);
|
|
16
|
-
assert(isClass(schedule) || isFunction(schedule.task), `schedule(${fullpath}: \`schedule.task\` should be function or \`schedule\` should be class`);
|
|
17
|
-
let task;
|
|
18
|
-
if (isClass(schedule)) {
|
|
19
|
-
assert(!isGeneratorFunction(schedule.prototype.subscribe), `schedule(${fullpath}): "schedule" generator function is not support, should use async function instead`);
|
|
20
|
-
task = async (ctx, ...args) => {
|
|
21
|
-
const instance = new schedule(ctx);
|
|
22
|
-
// s.subscribe = app.toAsyncFunction(s.subscribe);
|
|
23
|
-
return instance.subscribe(...args);
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
assert(!isGeneratorFunction(schedule.task), `schedule(${fullpath}): "task" generator function is not support, should use async function instead`);
|
|
28
|
-
task = schedule.task;
|
|
29
|
-
// task = app.toAsyncFunction(schedule.task);
|
|
30
|
-
}
|
|
31
|
-
const env = app.config.env;
|
|
32
|
-
const envList = schedule.schedule.env;
|
|
33
|
-
if (Array.isArray(envList) && !envList.includes(env)) {
|
|
34
|
-
app.coreLogger.info(`[@eggjs/schedule]: ignore schedule ${fullpath} due to \`schedule.env\` not match`);
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
// handle symlink case
|
|
38
|
-
const realFullpath = importResolve(fullpath);
|
|
39
|
-
target[realFullpath] = {
|
|
40
|
-
schedule: scheduleConfig,
|
|
41
|
-
scheduleQueryString: stringify(scheduleConfig),
|
|
42
|
-
task,
|
|
43
|
-
key: realFullpath,
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
return target;
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
export async function loadSchedule(app) {
|
|
51
|
-
const dirs = [
|
|
52
|
-
...app.loader.getLoadUnits().map(unit => path.join(unit.path, 'app/schedule')),
|
|
53
|
-
...app.config.schedule.directory,
|
|
54
|
-
];
|
|
55
|
-
const Loader = getScheduleLoader(app);
|
|
56
|
-
const schedules = {};
|
|
57
|
-
await new Loader({
|
|
58
|
-
directory: dirs,
|
|
59
|
-
target: schedules,
|
|
60
|
-
inject: app,
|
|
61
|
-
}).load();
|
|
62
|
-
Reflect.set(app, 'schedules', schedules);
|
|
63
|
-
return schedules;
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZF9zY2hlZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbG9hZF9zY2hlZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSTdDLFNBQVMsaUJBQWlCLENBQUMsR0FBdUI7SUFDaEQsT0FBTyxNQUFNLGNBQWUsU0FBUSxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVU7UUFDdkQsS0FBSyxDQUFDLElBQUk7WUFDUixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQXlDLENBQUM7WUFDdEUsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQWlFLENBQUM7Z0JBQ3hGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQy9CLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ3pDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsWUFBWSxRQUFRLCtDQUErQyxDQUFDLENBQUM7Z0JBQzVGLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFDbkQsWUFBWSxRQUFRLHdFQUF3RSxDQUFDLENBQUM7Z0JBRWhHLElBQUksSUFBcUIsQ0FBQztnQkFDMUIsSUFBSSxP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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
|
-
}
|
package/dist/esm/lib/schedule.js
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { debuglog } from 'node:util';
|
|
2
|
-
import { loadSchedule } from './load_schedule.js';
|
|
3
|
-
const debug = debuglog('@eggjs/schedule/lib/schedule');
|
|
4
|
-
export class Schedule {
|
|
5
|
-
closed = false;
|
|
6
|
-
#agent;
|
|
7
|
-
#logger;
|
|
8
|
-
#strategyClassMap = new Map();
|
|
9
|
-
#strategyInstanceMap = new Map();
|
|
10
|
-
constructor(agent) {
|
|
11
|
-
this.#agent = agent;
|
|
12
|
-
this.#logger = agent.getLogger('scheduleLogger');
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* register a custom Schedule Strategy
|
|
16
|
-
* @param {String} type - strategy type
|
|
17
|
-
* @param {Strategy} clz - Strategy class
|
|
18
|
-
*/
|
|
19
|
-
use(type, clz) {
|
|
20
|
-
this.#strategyClassMap.set(type, clz);
|
|
21
|
-
debug('use type: %o', type);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* load all schedule jobs, then initialize and register speical strategy
|
|
25
|
-
*/
|
|
26
|
-
async init() {
|
|
27
|
-
const scheduleItems = await loadSchedule(this.#agent);
|
|
28
|
-
for (const scheduleItem of Object.values(scheduleItems)) {
|
|
29
|
-
this.registerSchedule(scheduleItem);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
registerSchedule(scheduleItem) {
|
|
33
|
-
const { key, schedule } = scheduleItem;
|
|
34
|
-
const type = schedule.type;
|
|
35
|
-
if (schedule.disable) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
// find Strategy by type
|
|
39
|
-
const Strategy = this.#strategyClassMap.get(type);
|
|
40
|
-
if (!Strategy) {
|
|
41
|
-
const err = new Error(`schedule type [${type}] is not defined`);
|
|
42
|
-
err.name = 'EggScheduleError';
|
|
43
|
-
throw err;
|
|
44
|
-
}
|
|
45
|
-
// Initialize strategy and register
|
|
46
|
-
const instance = new Strategy(schedule, this.#agent, key);
|
|
47
|
-
this.#strategyInstanceMap.set(key, instance);
|
|
48
|
-
debug('registerSchedule type: %o, config: %o, key: %o', type, schedule, key);
|
|
49
|
-
}
|
|
50
|
-
unregisterSchedule(key) {
|
|
51
|
-
debug('unregisterSchedule key: %o', key);
|
|
52
|
-
return this.#strategyInstanceMap.delete(key);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* job finish event handler
|
|
56
|
-
*
|
|
57
|
-
* @param {Object} info - { id, key, success, message, workerId }
|
|
58
|
-
*/
|
|
59
|
-
onJobFinish(info) {
|
|
60
|
-
this.#logger.debug(`[Job#${info.id}] ${info.key} finish event received by agent from worker#${info.workerId}`);
|
|
61
|
-
const instance = this.#strategyInstanceMap.get(info.key);
|
|
62
|
-
/* istanbul ignore else */
|
|
63
|
-
if (instance) {
|
|
64
|
-
instance.onJobFinish(info);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* start schedule
|
|
69
|
-
*/
|
|
70
|
-
start() {
|
|
71
|
-
debug('start');
|
|
72
|
-
this.closed = false;
|
|
73
|
-
for (const instance of this.#strategyInstanceMap.values()) {
|
|
74
|
-
instance.start();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
close() {
|
|
78
|
-
this.closed = true;
|
|
79
|
-
for (const instance of this.#strategyInstanceMap.values()) {
|
|
80
|
-
instance.close();
|
|
81
|
-
}
|
|
82
|
-
debug('close');
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3NjaGVkdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSWxELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBRXZELE1BQU0sT0FBTyxRQUFRO0lBQ25CLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFZixNQUFNLENBQVE7SUFDZCxPQUFPLENBQVk7SUFDbkIsaUJBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7SUFDM0Qsb0JBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7SUFFdkQsWUFBWSxLQUFZO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsR0FBRyxDQUFDLElBQVksRUFBRSxHQUF3QjtRQUN4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN0QyxLQUFLLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxhQUFhLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELEtBQUssTUFBTSxZQUFZLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ3hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lB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
|
|
@@ -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,18 +0,0 @@
|
|
|
1
|
-
import { loadSchedule } from './load_schedule.js';
|
|
2
|
-
export class ScheduleWorker {
|
|
3
|
-
#app;
|
|
4
|
-
scheduleItems = {};
|
|
5
|
-
constructor(app) {
|
|
6
|
-
this.#app = app;
|
|
7
|
-
}
|
|
8
|
-
async init() {
|
|
9
|
-
this.scheduleItems = await loadSchedule(this.#app);
|
|
10
|
-
}
|
|
11
|
-
registerSchedule(scheduleItem) {
|
|
12
|
-
this.scheduleItems[scheduleItem.key] = scheduleItem;
|
|
13
|
-
}
|
|
14
|
-
unregisterSchedule(key) {
|
|
15
|
-
delete this.scheduleItems[key];
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVfd29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zY2hlZHVsZV93b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2xELE1BQU0sT0FBTyxjQUFjO0lBQ3pCLElBQUksQ0FBYztJQUNsQixhQUFhLEdBQW9DLEVBQUUsQ0FBQztJQUVwRCxZQUFZLEdBQWdCO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxZQUE2QjtRQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUM7SUFDdEQsQ0FBQztJQUVELGtCQUFrQixDQUFDLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FDRiJ9
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { TimerStrategy } from './timer.js';
|
|
2
|
-
export class AllStrategy extends TimerStrategy {
|
|
3
|
-
handler() {
|
|
4
|
-
this.sendAll();
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9zdHJhdGVneS9hbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUzQyxNQUFNLE9BQU8sV0FBWSxTQUFRLGFBQWE7SUFDNUMsT0FBTztRQUNMLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0NBQ0YifQ==
|
|
@@ -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,75 +0,0 @@
|
|
|
1
|
-
export class BaseStrategy {
|
|
2
|
-
agent;
|
|
3
|
-
scheduleConfig;
|
|
4
|
-
key;
|
|
5
|
-
logger;
|
|
6
|
-
closed = false;
|
|
7
|
-
count = 0;
|
|
8
|
-
constructor(scheduleConfig, agent, key) {
|
|
9
|
-
this.agent = agent;
|
|
10
|
-
this.key = key;
|
|
11
|
-
this.scheduleConfig = scheduleConfig;
|
|
12
|
-
this.logger = this.agent.getLogger('scheduleLogger');
|
|
13
|
-
}
|
|
14
|
-
/** keep compatibility */
|
|
15
|
-
get schedule() {
|
|
16
|
-
return this.scheduleConfig;
|
|
17
|
-
}
|
|
18
|
-
start() {
|
|
19
|
-
// empty loop by default
|
|
20
|
-
}
|
|
21
|
-
close() {
|
|
22
|
-
this.closed = true;
|
|
23
|
-
}
|
|
24
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
25
|
-
onJobStart(_info) { }
|
|
26
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
27
|
-
onJobFinish(_info) { }
|
|
28
|
-
/**
|
|
29
|
-
* trigger one worker
|
|
30
|
-
*
|
|
31
|
-
* @param {...any} args - pass to job task
|
|
32
|
-
*/
|
|
33
|
-
sendOne(...args) {
|
|
34
|
-
/* istanbul ignore next */
|
|
35
|
-
if (this.agent.schedule.closed) {
|
|
36
|
-
this.logger.warn(`${this.key} skip due to schedule closed`);
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
this.count++;
|
|
40
|
-
const info = {
|
|
41
|
-
key: this.key,
|
|
42
|
-
id: this.getSeqId(),
|
|
43
|
-
args,
|
|
44
|
-
};
|
|
45
|
-
this.logger.info(`[Job#${info.id}] ${info.key} triggered, send random by agent`);
|
|
46
|
-
this.agent.messenger.sendRandom('egg-schedule', info);
|
|
47
|
-
this.onJobStart(info);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* trigger all worker
|
|
51
|
-
*
|
|
52
|
-
* @param {...any} args - pass to job task
|
|
53
|
-
*/
|
|
54
|
-
sendAll(...args) {
|
|
55
|
-
/* istanbul ignore next */
|
|
56
|
-
if (this.agent.schedule.closed) {
|
|
57
|
-
this.logger.warn(`${this.key} skip due to schedule closed`);
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
this.count++;
|
|
61
|
-
const info = {
|
|
62
|
-
key: this.key,
|
|
63
|
-
id: this.getSeqId(),
|
|
64
|
-
args,
|
|
65
|
-
};
|
|
66
|
-
this.logger.info(`[Job#${info.id}] ${info.key} triggered, send all by agent`);
|
|
67
|
-
// send to all workers
|
|
68
|
-
this.agent.messenger.send('egg-schedule', info);
|
|
69
|
-
this.onJobStart(info);
|
|
70
|
-
}
|
|
71
|
-
getSeqId() {
|
|
72
|
-
return `${Date.now()}${process.hrtime().join('')}${this.count}`;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc3RyYXRlZ3kvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sWUFBWTtJQUNiLEtBQUssQ0FBUTtJQUNiLGNBQWMsQ0FBb0I7SUFDbEMsR0FBRyxDQUFTO0lBQ1osTUFBTSxDQUFZO0lBQ2xCLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDekIsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUVWLFlBQVksY0FBaUMsRUFBRSxLQUFZLEVBQUUsR0FBVztRQUN0RSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSztRQUNILHdCQUF3QjtJQUMxQixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCw2REFBNkQ7SUFDN0QsVUFBVSxDQUFDLEtBQXlCLElBQUcsQ0FBQztJQUV4Qyw2REFBNkQ7SUFDN0QsV0FBVyxDQUFDLEtBQXlCLElBQUcsQ0FBQztJQUV6Qzs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLEdBQUcsSUFBVztRQUNwQiwwQkFBMEI7UUFDMUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLDhCQUE4QixDQUFDLENBQUM7WUFDNUQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFYixNQUFNLElBQUksR0FBRztZQUNYLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ25CLElBQUk7U0FDaUIsQ0FBQztRQUV4QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEdBQUcsa0NBQWtDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsR0FBRyxJQUFXO1FBQ3BCLDBCQUEwQjtRQUMxQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsOEJBQThCLENBQUMsQ0FBQztZQUM1RCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLE1BQU0sSUFBSSxHQUFHO1lBQ1gsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbkIsSUFBSTtTQUNpQixDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsR0FBRywrQkFBK0IsQ0FBQyxDQUFDO1FBQzlFLHNCQUFzQjtRQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xFLENBQUM7Q0FDRiJ9
|
|
@@ -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
|
-
}
|