@eggjs/schedule 6.0.0-beta.35 → 6.0.0-beta.36
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/dist/agent.d.ts +12 -8
- package/dist/agent.js +30 -32
- package/dist/app/extend/agent.d.ts +21 -17
- package/dist/app/extend/agent.js +30 -28
- package/dist/app/extend/application.d.ts +11 -7
- package/dist/app/extend/application.js +17 -15
- package/dist/app/extend/application.unittest.d.ts +7 -3
- package/dist/app/extend/application.unittest.js +45 -50
- package/dist/app.d.ts +10 -6
- package/dist/app.js +69 -77
- package/dist/config/config.default.d.ts +19 -17
- package/dist/config/config.default.js +11 -11
- package/dist/index.d.ts +13 -10
- package/dist/index.js +15 -14
- package/dist/lib/load_schedule.d.ts +7 -3
- package/dist/lib/load_schedule.js +58 -63
- package/dist/lib/schedule.d.ts +34 -30
- package/dist/lib/schedule.js +76 -84
- package/dist/lib/schedule_worker.d.ts +13 -9
- package/dist/lib/schedule_worker.js +22 -20
- package/dist/lib/strategy/all.d.ts +7 -3
- package/dist/lib/strategy/all.js +10 -6
- package/dist/lib/strategy/base.d.ts +35 -31
- package/dist/lib/strategy/base.js +73 -75
- package/dist/lib/strategy/timer.d.ts +22 -18
- package/dist/lib/strategy/timer.js +70 -93
- package/dist/lib/strategy/worker.d.ts +7 -3
- package/dist/lib/strategy/worker.js +10 -6
- package/dist/lib/types.d.ts +26 -23
- package/dist/lib/types.js +1 -2
- package/dist/types.d.ts +40 -38
- package/dist/types.js +1 -2
- package/package.json +44 -52
package/dist/agent.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import ScheduleAgent from "./app/extend/agent.js";
|
|
2
|
+
import { ILifecycleBoot } from "egg";
|
|
3
|
+
|
|
4
|
+
//#region src/agent.d.ts
|
|
5
|
+
declare class Boot implements ILifecycleBoot {
|
|
6
|
+
#private;
|
|
7
|
+
constructor(agent: ScheduleAgent);
|
|
8
|
+
configDidLoad(): Promise<void>;
|
|
9
|
+
serverDidReady(): Promise<void>;
|
|
10
|
+
beforeClose(): Promise<void>;
|
|
9
11
|
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { Boot as default };
|
package/dist/agent.js
CHANGED
|
@@ -1,34 +1,32 @@
|
|
|
1
|
-
import { debuglog } from 'node:util';
|
|
2
1
|
import { AllStrategy } from "./lib/strategy/all.js";
|
|
3
2
|
import { WorkerStrategy } from "./lib/strategy/worker.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUtyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzFELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sSUFBSTtJQUN2QixNQUFNLENBQVE7SUFDZCxZQUFZLEtBQVk7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhO1FBQ2pCLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFN0Msb0RBQW9EO1FBQ3BELE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFbEMsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUF3QixFQUFFLEVBQUU7WUFDcEUsMkJBQTJCO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsb0NBQW9DO1FBQ3BDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsaUNBQWlDO1FBQ2pDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGIn0=
|
|
3
|
+
import { debuglog } from "node:util";
|
|
4
|
+
|
|
5
|
+
//#region src/agent.ts
|
|
6
|
+
const debug = debuglog("egg/schedule/agent");
|
|
7
|
+
var Boot = class {
|
|
8
|
+
#agent;
|
|
9
|
+
constructor(agent) {
|
|
10
|
+
this.#agent = agent;
|
|
11
|
+
}
|
|
12
|
+
async configDidLoad() {
|
|
13
|
+
this.#agent.schedule.use("worker", WorkerStrategy);
|
|
14
|
+
this.#agent.schedule.use("all", AllStrategy);
|
|
15
|
+
await this.#agent.schedule.init();
|
|
16
|
+
this.#agent.messenger.on("egg-schedule", (info) => {
|
|
17
|
+
this.#agent.schedule.onJobFinish(info);
|
|
18
|
+
});
|
|
19
|
+
debug("configDidLoad");
|
|
20
|
+
}
|
|
21
|
+
async serverDidReady() {
|
|
22
|
+
await this.#agent.schedule.start();
|
|
23
|
+
debug("serverDidReady, schedule start");
|
|
24
|
+
}
|
|
25
|
+
async beforeClose() {
|
|
26
|
+
await this.#agent.schedule.close();
|
|
27
|
+
debug("beforeClose, schedule close");
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
//#endregion
|
|
32
|
+
export { Boot as default };
|
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Scheduler } from
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
import { BaseStrategy } from "../../lib/strategy/base.js";
|
|
2
|
+
import { Scheduler } from "../../lib/schedule.js";
|
|
3
|
+
import { TimerStrategy } from "../../lib/strategy/timer.js";
|
|
4
|
+
import { Agent } from "egg";
|
|
5
|
+
|
|
6
|
+
//#region src/app/extend/agent.d.ts
|
|
7
|
+
declare class ScheduleAgent extends Agent {
|
|
8
|
+
/**
|
|
9
|
+
* @member agent#ScheduleStrategy
|
|
10
|
+
*/
|
|
11
|
+
get ScheduleStrategy(): typeof BaseStrategy;
|
|
12
|
+
/**
|
|
13
|
+
* @member agent#TimerScheduleStrategy
|
|
14
|
+
*/
|
|
15
|
+
get TimerScheduleStrategy(): typeof TimerStrategy;
|
|
16
|
+
/**
|
|
17
|
+
* @member agent#schedule
|
|
18
|
+
*/
|
|
19
|
+
get schedule(): Scheduler;
|
|
18
20
|
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { ScheduleAgent as default };
|
package/dist/app/extend/agent.js
CHANGED
|
@@ -1,30 +1,32 @@
|
|
|
1
|
-
import { Agent } from 'egg';
|
|
2
|
-
import { Scheduler } from "../../lib/schedule.js";
|
|
3
1
|
import { BaseStrategy } from "../../lib/strategy/base.js";
|
|
4
2
|
import { TimerStrategy } from "../../lib/strategy/timer.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
3
|
+
import { Scheduler } from "../../lib/schedule.js";
|
|
4
|
+
import { Agent } from "egg";
|
|
5
|
+
|
|
6
|
+
//#region src/app/extend/agent.ts
|
|
7
|
+
const SCHEDULE = Symbol("agent schedule");
|
|
8
|
+
var ScheduleAgent = class extends Agent {
|
|
9
|
+
/**
|
|
10
|
+
* @member agent#ScheduleStrategy
|
|
11
|
+
*/
|
|
12
|
+
get ScheduleStrategy() {
|
|
13
|
+
return BaseStrategy;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @member agent#TimerScheduleStrategy
|
|
17
|
+
*/
|
|
18
|
+
get TimerScheduleStrategy() {
|
|
19
|
+
return TimerStrategy;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @member agent#schedule
|
|
23
|
+
*/
|
|
24
|
+
get schedule() {
|
|
25
|
+
let schedule = this[SCHEDULE];
|
|
26
|
+
if (!schedule) this[SCHEDULE] = schedule = new Scheduler(this);
|
|
27
|
+
return schedule;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
//#endregion
|
|
32
|
+
export { ScheduleAgent as default };
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { ScheduleWorker } from "../../lib/schedule_worker.js";
|
|
2
|
+
import { Application } from "egg";
|
|
3
|
+
|
|
4
|
+
//#region src/app/extend/application.d.ts
|
|
5
|
+
declare class ScheduleApplication extends Application {
|
|
6
|
+
/**
|
|
7
|
+
* @member app#scheduleWorker
|
|
8
|
+
*/
|
|
9
|
+
get scheduleWorker(): ScheduleWorker;
|
|
8
10
|
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { ScheduleApplication as default };
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import { Application } from 'egg';
|
|
2
1
|
import { ScheduleWorker } from "../../lib/schedule_worker.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
2
|
+
import { Application } from "egg";
|
|
3
|
+
|
|
4
|
+
//#region src/app/extend/application.ts
|
|
5
|
+
const SCHEDULE_WORKER = Symbol("application scheduleWorker");
|
|
6
|
+
var ScheduleApplication = class extends Application {
|
|
7
|
+
/**
|
|
8
|
+
* @member app#scheduleWorker
|
|
9
|
+
*/
|
|
10
|
+
get scheduleWorker() {
|
|
11
|
+
let scheduleWorker = this[SCHEDULE_WORKER];
|
|
12
|
+
if (!scheduleWorker) this[SCHEDULE_WORKER] = scheduleWorker = new ScheduleWorker(this);
|
|
13
|
+
return scheduleWorker;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { ScheduleApplication as default };
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import ScheduleApplication from
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import ScheduleApplication from "./application.js";
|
|
2
|
+
|
|
3
|
+
//#region src/app/extend/application.unittest.d.ts
|
|
4
|
+
declare class ScheduleApplicationUnittest extends ScheduleApplication {
|
|
5
|
+
runSchedule(schedulePath: string, ...args: any[]): Promise<any>;
|
|
4
6
|
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { ScheduleApplicationUnittest as default };
|
|
@@ -1,51 +1,46 @@
|
|
|
1
|
-
import path from 'node:path';
|
|
2
|
-
import { debuglog } from 'node:util';
|
|
3
|
-
import { importResolve } from '@eggjs/utils';
|
|
4
1
|
import ScheduleApplication from "./application.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24udW5pdHRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9hcHBsaWNhdGlvbi51bml0dGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzdDLE9BQU8sbUJBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFM0MsTUFBTSxDQUFDLE9BQU8sT0FBTywyQkFBNEIsU0FBUSxtQkFBbUI7SUFDMUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFvQixFQUFFLEdBQUcsSUFBVztRQUNwRCxLQUFLLENBQUMsZ0RBQWdELEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVFLG1CQUFtQjtRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXBHLG9CQUFvQjtRQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxZQUFZLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxNQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBQ3JELElBQUksQ0FBQztvQkFDSCxZQUFZLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUM5QyxNQUFNO2dCQUNSLENBQUM7Z0JBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztvQkFDYixLQUFLLENBQUMsMENBQTBDLEVBQUUsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUMxRSxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxLQUFLLENBQUMsd0NBQXdDLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUQsSUFBSSxRQUF5QixDQUFDO1FBQzlCLElBQUksQ0FBQztZQUNILFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2QsS0FBSyxDQUNILDBEQUEwRCxFQUMxRCxZQUFZLEVBQ1osSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQ2xDLENBQUM7Z0JBQ0YsTUFBTSxJQUFJLFNBQVMsQ0FBQyx3QkFBd0IsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUM5RCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7WUFDbEIsR0FBRyxDQUFDLE9BQU8sR0FBRyxxQkFBcUIsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pELE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQztRQUVELDZCQUE2QjtRQUM3QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7WUFDdEMsTUFBTSxFQUFFLFVBQVU7WUFDbEIsR0FBRyxFQUFFLG9CQUFvQixZQUFZLElBQUksUUFBUSxDQUFDLG1CQUFtQixFQUFFO1NBQ3hFLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDL0MsT0FBTyxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
|
|
2
|
+
import { debuglog } from "node:util";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { importResolve } from "@eggjs/utils";
|
|
5
|
+
|
|
6
|
+
//#region src/app/extend/application.unittest.ts
|
|
7
|
+
const debug = debuglog("egg/schedule/app");
|
|
8
|
+
var ScheduleApplicationUnittest = class extends ScheduleApplication {
|
|
9
|
+
async runSchedule(schedulePath, ...args) {
|
|
10
|
+
debug("[runSchedule] start schedulePath: %o, args: %o", schedulePath, args);
|
|
11
|
+
const config = this.config;
|
|
12
|
+
const directory = [path.join(config.baseDir, "app/schedule"), ...config.schedule.directory ?? []];
|
|
13
|
+
if (path.isAbsolute(schedulePath)) schedulePath = importResolve(schedulePath);
|
|
14
|
+
else for (const dir of directory) {
|
|
15
|
+
const trySchedulePath = path.join(dir, schedulePath);
|
|
16
|
+
try {
|
|
17
|
+
schedulePath = importResolve(trySchedulePath);
|
|
18
|
+
break;
|
|
19
|
+
} catch (err) {
|
|
20
|
+
debug("[runSchedule] importResolve %o error: %s", trySchedulePath, err);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
debug("[runSchedule] resolve schedulePath: %o", schedulePath);
|
|
24
|
+
let schedule;
|
|
25
|
+
try {
|
|
26
|
+
schedule = this.scheduleWorker.scheduleItems[schedulePath];
|
|
27
|
+
if (!schedule) {
|
|
28
|
+
debug("[runSchedule] Cannot find schedule %o, scheduleItems: %o", schedulePath, this.scheduleWorker.scheduleItems);
|
|
29
|
+
throw new TypeError(`Cannot find schedule ${schedulePath}`);
|
|
30
|
+
}
|
|
31
|
+
} catch (err) {
|
|
32
|
+
err.message = `[@eggjs/schedule] ${err.message}`;
|
|
33
|
+
throw err;
|
|
34
|
+
}
|
|
35
|
+
const ctx = this.createAnonymousContext({
|
|
36
|
+
method: "SCHEDULE",
|
|
37
|
+
url: `/__schedule?path=${schedulePath}&${schedule.scheduleQueryString}`
|
|
38
|
+
});
|
|
39
|
+
return await this.ctxStorage.run(ctx, async () => {
|
|
40
|
+
return await schedule.task(ctx, ...args);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
//#endregion
|
|
46
|
+
export { ScheduleApplicationUnittest as default };
|
package/dist/app.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import ScheduleApplication from "./app/extend/application.js";
|
|
2
|
+
import { ILifecycleBoot } from "egg";
|
|
3
|
+
|
|
4
|
+
//#region src/app.d.ts
|
|
5
|
+
declare class Boot implements ILifecycleBoot {
|
|
6
|
+
#private;
|
|
7
|
+
constructor(app: ScheduleApplication);
|
|
8
|
+
configDidLoad(): Promise<void>;
|
|
7
9
|
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { Boot as default };
|
package/dist/app.js
CHANGED
|
@@ -1,77 +1,69 @@
|
|
|
1
|
-
import { debuglog } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
rt,
|
|
71
|
-
message: e?.message,
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
debug('configDidLoad');
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBT3JDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBRTNDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sSUFBSTtJQUN2QixJQUFJLENBQWM7SUFDbEIsT0FBTyxDQUFZO0lBQ25CLFlBQVksR0FBZ0I7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhO1FBQ2pCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQ2hELE1BQU0sY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTVCLG9CQUFvQjtRQUNwQixLQUFLLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3QyxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx5Q0FBeUMsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0UsQ0FBQztRQUNILENBQUM7UUFFRCwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDcEQsS0FBSyxDQUFDLG9DQUFvQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xELE1BQU0sRUFBRSxF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
|
|
1
|
+
import { debuglog } from "node:util";
|
|
2
|
+
|
|
3
|
+
//#region src/app.ts
|
|
4
|
+
const debug = debuglog("egg/schedule/app");
|
|
5
|
+
var Boot = class {
|
|
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
|
+
for (const s in scheduleWorker.scheduleItems) {
|
|
16
|
+
const schedule = scheduleWorker.scheduleItems[s];
|
|
17
|
+
if (!schedule.schedule.disable) this.#logger.info("[@eggjs/schedule]: register schedule %s", schedule.key);
|
|
18
|
+
}
|
|
19
|
+
this.#app.messenger.on("egg-schedule", async (info) => {
|
|
20
|
+
debug("app got \"egg-schedule\" message: %o", info);
|
|
21
|
+
const { id, key } = info;
|
|
22
|
+
this.#logger.debug(`[Job#${id}] ${key} await app ready`);
|
|
23
|
+
await this.#app.ready();
|
|
24
|
+
const schedule = scheduleWorker.scheduleItems[key];
|
|
25
|
+
this.#logger.debug(`[Job#${id}] ${key} task received by app`);
|
|
26
|
+
if (!schedule) {
|
|
27
|
+
this.#logger.warn(`[Job#${id}] ${key} unknown task`);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
/* istanbul ignore next */
|
|
31
|
+
if (schedule.schedule.disable) {
|
|
32
|
+
this.#logger.warn(`[Job#${id}] ${key} disable`);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
this.#logger.info(`[Job#${id}] ${key} executing by app`);
|
|
36
|
+
const ctx = this.#app.createAnonymousContext({
|
|
37
|
+
method: "SCHEDULE",
|
|
38
|
+
url: `/__schedule?path=${key}&${schedule.scheduleQueryString}`
|
|
39
|
+
});
|
|
40
|
+
const start = Date.now();
|
|
41
|
+
let success;
|
|
42
|
+
let e;
|
|
43
|
+
try {
|
|
44
|
+
await this.#app.ctxStorage.run(ctx, async () => {
|
|
45
|
+
return await schedule.task(ctx, ...info.args);
|
|
46
|
+
});
|
|
47
|
+
success = true;
|
|
48
|
+
} catch (err) {
|
|
49
|
+
success = false;
|
|
50
|
+
e = err;
|
|
51
|
+
}
|
|
52
|
+
const rt = Date.now() - start;
|
|
53
|
+
const msg = `[Job#${id}] ${key} execute ${success ? "succeed" : "failed"}, used ${rt}ms.`;
|
|
54
|
+
if (success) this.#logger.info(msg);
|
|
55
|
+
else this.#logger.error(msg, e);
|
|
56
|
+
this.#app.messenger.sendToAgent("egg-schedule", {
|
|
57
|
+
...info,
|
|
58
|
+
success,
|
|
59
|
+
workerId: process.pid,
|
|
60
|
+
rt,
|
|
61
|
+
message: e?.message
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
debug("configDidLoad");
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
//#endregion
|
|
69
|
+
export { Boot as default };
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import { ParserOptions as CronOptions } from "cron-parser";
|
|
2
|
+
import { PartialEggConfig } from "egg";
|
|
3
|
+
|
|
4
|
+
//#region src/config/config.default.d.ts
|
|
5
|
+
interface EggScheduleConfig {
|
|
6
|
+
type?: "worker" | "all";
|
|
7
|
+
interval?: string | number;
|
|
8
|
+
cron?: string;
|
|
9
|
+
cronOptions?: CronOptions;
|
|
10
|
+
immediate?: boolean;
|
|
11
|
+
disable?: boolean;
|
|
12
|
+
env?: string[];
|
|
13
|
+
/**
|
|
14
|
+
* custom additional directory, full path
|
|
15
|
+
*/
|
|
16
|
+
directory?: string[];
|
|
16
17
|
}
|
|
17
|
-
declare const
|
|
18
|
-
|
|
18
|
+
declare const config: PartialEggConfig;
|
|
19
|
+
//#endregion
|
|
20
|
+
export { type CronOptions, EggScheduleConfig, config as default };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
schedule: {
|
|
9
|
-
directory: [],
|
|
10
|
-
},
|
|
1
|
+
//#region src/config/config.default.ts
|
|
2
|
+
const config = {
|
|
3
|
+
customLogger: { scheduleLogger: {
|
|
4
|
+
consoleLevel: "NONE",
|
|
5
|
+
file: "egg-schedule.log"
|
|
6
|
+
} },
|
|
7
|
+
schedule: { directory: [] }
|
|
11
8
|
};
|
|
12
|
-
|
|
9
|
+
var config_default_default = config;
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { config_default_default as default };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { CronOptions } from "./config/config.default.js";
|
|
2
|
+
import { EggScheduleHandler, EggScheduleItem, EggScheduleJobInfo, EggScheduleTask, EggScheduleTaskOptions } from "./lib/types.js";
|
|
3
|
+
import { Scheduler } from "./lib/schedule.js";
|
|
4
|
+
import ScheduleAgent from "./app/extend/agent.js";
|
|
5
|
+
import { ScheduleWorker } from "./lib/schedule_worker.js";
|
|
6
|
+
import ScheduleApplication from "./app/extend/application.js";
|
|
7
|
+
import ScheduleApplicationUnittest from "./app/extend/application.unittest.js";
|
|
8
|
+
import "./types.js";
|
|
9
|
+
import { EggPluginFactory } from "egg";
|
|
10
|
+
|
|
11
|
+
//#region src/index.d.ts
|
|
10
12
|
declare const _default: EggPluginFactory;
|
|
11
|
-
|
|
13
|
+
//#endregion
|
|
14
|
+
export { ScheduleAgent as Agent, ScheduleApplication as Application, ScheduleApplicationUnittest as ApplicationUnittest, CronOptions, EggScheduleHandler, EggScheduleItem, EggScheduleJobInfo, EggScheduleTask, EggScheduleTaskOptions, ScheduleWorker, Scheduler, _default as default };
|