@eggjs/cluster 3.0.0-beta.2 → 3.0.0-beta.3
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 +4 -4
- package/dist/commonjs/app_worker.js +14 -7
- package/dist/commonjs/master.js +13 -2
- package/dist/commonjs/package-lock.json +5618 -0
- package/dist/commonjs/utils/messenger.js +2 -1
- package/dist/commonjs/utils/mode/base/app.d.ts +1 -0
- package/dist/commonjs/utils/mode/base/app.js +5 -1
- package/dist/commonjs/utils/mode/impl/process/app.d.ts +1 -0
- package/dist/commonjs/utils/mode/impl/process/app.js +5 -15
- package/dist/commonjs/utils/mode/impl/worker_threads/app.d.ts +1 -0
- package/dist/commonjs/utils/mode/impl/worker_threads/app.js +5 -20
- package/dist/esm/app_worker.js +14 -7
- package/dist/esm/master.js +13 -2
- package/dist/esm/package-lock.json +5618 -0
- package/dist/esm/utils/messenger.js +2 -1
- package/dist/esm/utils/mode/base/app.d.ts +1 -0
- package/dist/esm/utils/mode/base/app.js +5 -1
- package/dist/esm/utils/mode/impl/process/app.d.ts +1 -0
- package/dist/esm/utils/mode/impl/process/app.js +5 -15
- package/dist/esm/utils/mode/impl/worker_threads/app.d.ts +1 -0
- package/dist/esm/utils/mode/impl/worker_threads/app.js +5 -20
- package/dist/package.json +1 -1
- package/package.json +4 -4
- package/src/app_worker.ts +14 -6
- package/src/master.ts +13 -3
- package/src/package-lock.json +5618 -0
- package/src/utils/messenger.ts +1 -0
- package/src/utils/mode/base/app.ts +6 -0
- package/src/utils/mode/impl/process/app.ts +6 -15
- package/src/utils/mode/impl/worker_threads/app.ts +6 -23
|
@@ -135,6 +135,7 @@ export class Messenger {
|
|
|
135
135
|
* @param {Object} data message body
|
|
136
136
|
*/
|
|
137
137
|
sendToMaster(data) {
|
|
138
|
+
// e.g: master.on('app-start', data => {})
|
|
138
139
|
this.#master.emit(data.action, data.data);
|
|
139
140
|
}
|
|
140
141
|
/**
|
|
@@ -175,4 +176,4 @@ export class Messenger {
|
|
|
175
176
|
}
|
|
176
177
|
}
|
|
177
178
|
}
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2VuZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL21lc3Nlbmdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sYUFBYSxNQUFNLHFCQUFxQixDQUFDO0FBSWhELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBaUJuRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkNHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFDcEIsT0FBTyxDQUFTO0lBQ2hCLGNBQWMsQ0FBZ0I7SUFDOUIsVUFBVSxDQUFVO0lBRXBCLFlBQVksTUFBYyxFQUFFLGFBQTRCO1FBQ3RELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDL0QsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFnQixFQUFFLEVBQUU7WUFDekMsR0FBRyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtZQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxJQUFpQjtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2Ys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
|
|
@@ -19,6 +19,7 @@ export declare abstract class BaseAppWorker<T = ThreadWorker | ClusterProcessWor
|
|
|
19
19
|
set isDevReload(isDevReload: boolean);
|
|
20
20
|
abstract send(data: MessageBody): void;
|
|
21
21
|
clean(): void;
|
|
22
|
+
static get workerId(): number;
|
|
22
23
|
static on(..._args: any[]): void;
|
|
23
24
|
static send(_message: MessageBody): void;
|
|
24
25
|
static kill(): void;
|
|
@@ -27,6 +27,10 @@ export class BaseAppWorker {
|
|
|
27
27
|
clean() {
|
|
28
28
|
throw new Error('BaseAppWorker should implement clean.');
|
|
29
29
|
}
|
|
30
|
+
// static methods use on src/app_worker.ts
|
|
31
|
+
static get workerId() {
|
|
32
|
+
throw new Error('BaseAppWorker should implement workerId.');
|
|
33
|
+
}
|
|
30
34
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
31
35
|
static on(..._args) {
|
|
32
36
|
throw new Error('BaseAppWorker should implement on.');
|
|
@@ -68,4 +72,4 @@ export class BaseAppUtils extends EventEmitter {
|
|
|
68
72
|
throw new Error('BaseApp should implement fork.');
|
|
69
73
|
}
|
|
70
74
|
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3V0aWxzL21vZGUvYmFzZS9hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFNM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE1BQU0sT0FBZ0IsYUFBYTtJQUNqQyxRQUFRLENBQUk7SUFFWixZQUFZLFFBQVc7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQU1ELElBQUksS0FBSztRQUNQLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUyxFQUFFLE9BQU8sQ0FBVyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQU1ELElBQUksYUFBYTtRQUNmLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUyxFQUFFLGVBQWUsQ0FBWSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxhQUFzQjtRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFTLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVMsRUFBRSxhQUFhLENBQVksQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsV0FBb0I7UUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUyxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBSUQsS0FBSztRQUNILE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsMENBQTBDO0lBRTFDLE1BQU0sS0FBSyxRQUFRO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFZO1FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBcUI7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSTtRQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBYTtRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNGO0FBSUQsTUFBTSxPQUFnQixZQUFhLFNBQVEsWUFBWTtJQUNyRCxPQUFPLENBQWdCO0lBQ2IsU0FBUyxDQUFZO0lBQ3JCLEdBQUcsQ0FBUztJQUNaLE1BQU0sQ0FBUztJQUNmLFlBQVksQ0FBVTtJQUNoQyxlQUFlO0lBQ2YsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNkLGlCQUFpQixHQUFHLENBQUMsQ0FBQztJQUN0QixrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFFM0IsWUFBWSxPQUFzQixFQUFFLEVBQ2xDLEdBQUcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFlBQVksR0FNckM7UUFDQyxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSTtRQUNGLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBR0YifQ==
|
|
@@ -9,6 +9,7 @@ export declare class AppProcessWorker extends BaseAppWorker<ClusterProcessWorker
|
|
|
9
9
|
get exitCode(): number;
|
|
10
10
|
send(message: MessageBody): void;
|
|
11
11
|
clean(): void;
|
|
12
|
+
static get workerId(): number;
|
|
12
13
|
static on(event: string, listener: (...args: any[]) => void): void;
|
|
13
14
|
static send(message: MessageBody): void;
|
|
14
15
|
static kill(): void;
|
|
@@ -23,6 +23,10 @@ export class AppProcessWorker extends BaseAppWorker {
|
|
|
23
23
|
clean() {
|
|
24
24
|
this.instance.removeAllListeners();
|
|
25
25
|
}
|
|
26
|
+
// static methods use on src/app_worker.ts
|
|
27
|
+
static get workerId() {
|
|
28
|
+
return process.pid;
|
|
29
|
+
}
|
|
26
30
|
static on(event, listener) {
|
|
27
31
|
process.on(event, listener);
|
|
28
32
|
}
|
|
@@ -102,20 +106,6 @@ export class AppProcessUtils extends BaseAppUtils {
|
|
|
102
106
|
from: 'app',
|
|
103
107
|
});
|
|
104
108
|
});
|
|
105
|
-
cluster.on('listening', (worker, address) => {
|
|
106
|
-
const appWorker = new AppProcessWorker(worker);
|
|
107
|
-
appWorker.state = 'listening';
|
|
108
|
-
this.log('[master] app_worker#%s:%s listening at %j', appWorker.id, appWorker.workerId, address);
|
|
109
|
-
this.messenger.send({
|
|
110
|
-
action: 'app-start',
|
|
111
|
-
data: {
|
|
112
|
-
workerId: appWorker.workerId,
|
|
113
|
-
address,
|
|
114
|
-
},
|
|
115
|
-
to: 'master',
|
|
116
|
-
from: 'app',
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
109
|
return this;
|
|
120
110
|
}
|
|
121
111
|
async kill(timeout) {
|
|
@@ -126,4 +116,4 @@ export class AppProcessUtils extends BaseAppUtils {
|
|
|
126
116
|
}));
|
|
127
117
|
}
|
|
128
118
|
}
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3V0aWxzL21vZGUvaW1wbC9wcm9jZXNzL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE9BQWdELE1BQU0sY0FBYyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsUUFBUSxJQUFJLFlBQVksRUFBdUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdsRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsYUFBbUM7SUFDdkUsSUFBSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFJLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFTLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFvQjtRQUN2QixXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsMENBQTBDO0lBRTFDLE1BQU0sS0FBSyxRQUFR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
|
|
@@ -13,6 +13,7 @@ export declare class AppThreadWorker extends BaseAppWorker<ThreadWorker> {
|
|
|
13
13
|
get exitCode(): number;
|
|
14
14
|
send(message: MessageBody): void;
|
|
15
15
|
clean(): void;
|
|
16
|
+
static get workerId(): number;
|
|
16
17
|
static on(event: string, listener: (...args: any[]) => void): void;
|
|
17
18
|
static send(message: MessageBody): void;
|
|
18
19
|
static kill(): void;
|
|
@@ -33,6 +33,10 @@ export class AppThreadWorker extends BaseAppWorker {
|
|
|
33
33
|
clean() {
|
|
34
34
|
this.instance.removeAllListeners();
|
|
35
35
|
}
|
|
36
|
+
// static methods use on src/app_worker.ts
|
|
37
|
+
static get workerId() {
|
|
38
|
+
return threadId;
|
|
39
|
+
}
|
|
36
40
|
static on(event, listener) {
|
|
37
41
|
parentPort.on(event, listener);
|
|
38
42
|
}
|
|
@@ -88,25 +92,6 @@ export class AppThreadUtils extends BaseAppUtils {
|
|
|
88
92
|
},
|
|
89
93
|
});
|
|
90
94
|
}
|
|
91
|
-
// handle worker listening
|
|
92
|
-
worker.on('message', ({ action, data: address }) => {
|
|
93
|
-
if (action !== 'listening') {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
if (!address) {
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
appWorker.state = 'listening';
|
|
100
|
-
this.messenger.send({
|
|
101
|
-
action: 'app-start',
|
|
102
|
-
data: {
|
|
103
|
-
workerId: appWorker.workerId,
|
|
104
|
-
address,
|
|
105
|
-
},
|
|
106
|
-
to: 'master',
|
|
107
|
-
from: 'app',
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
95
|
// handle worker exit
|
|
111
96
|
worker.on('exit', async (code) => {
|
|
112
97
|
appWorker.state = 'dead';
|
|
@@ -149,4 +134,4 @@ export class AppThreadUtils extends BaseAppUtils {
|
|
|
149
134
|
}
|
|
150
135
|
}
|
|
151
136
|
}
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3V0aWxzL21vZGUvaW1wbC93b3JrZXJfdGhyZWFkcy9hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsSUFBSSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsTUFBTSxJQUFJLFlBQVksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFzQixNQUFNLHFCQUFxQixDQUFDO0FBRXZHLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHaEUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsYUFBMkI7SUFDOUQsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNoQixHQUFHLENBQVM7SUFFWixZQUFZLFFBQXNCLEVBQUUsRUFBVTtRQUM1QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxHQUFHO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxDQUFDO1FBQ1QsaUNBQWlDO0lBQ25DLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBb0I7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FB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
|
package/dist/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/cluster",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.3",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
],
|
|
21
21
|
"repository": {
|
|
22
22
|
"type": "git",
|
|
23
|
-
"url": "git+https://github.com/eggjs/
|
|
23
|
+
"url": "git+https://github.com/eggjs/cluster.git"
|
|
24
24
|
},
|
|
25
25
|
"keywords": [
|
|
26
26
|
"egg",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"author": "dead-horse <dead_horse@qq.com>",
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"bugs": {
|
|
33
|
-
"url": "https://github.com/eggjs/
|
|
33
|
+
"url": "https://github.com/eggjs/cluster/issues"
|
|
34
34
|
},
|
|
35
|
-
"homepage": "https://github.com/eggjs/
|
|
35
|
+
"homepage": "https://github.com/eggjs/cluster#readme",
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@eggjs/utils": "^4.0.2",
|
|
38
38
|
"@fengmk2/ps-tree": "^2.0.1",
|
package/src/app_worker.ts
CHANGED
|
@@ -41,7 +41,7 @@ async function main() {
|
|
|
41
41
|
level: process.env.EGG_APP_WORKER_LOGGER_LEVEL,
|
|
42
42
|
});
|
|
43
43
|
const { Application } = await importModule(options.framework);
|
|
44
|
-
debug('new Application with options %j', options);
|
|
44
|
+
debug('[app_worker:%s] new Application with options %j', process.pid, options);
|
|
45
45
|
let app: any;
|
|
46
46
|
try {
|
|
47
47
|
app = new Application(options);
|
|
@@ -138,7 +138,8 @@ async function main() {
|
|
|
138
138
|
server.listen(listenConfig.path);
|
|
139
139
|
} else {
|
|
140
140
|
if (typeof port !== 'number') {
|
|
141
|
-
consoleLogger.error('[app_worker] port should be number, but got %s(%s)',
|
|
141
|
+
consoleLogger.error('[app_worker:%s] port should be number, but got %s(%s)',
|
|
142
|
+
process.pid, port, typeof port);
|
|
142
143
|
exitProcess();
|
|
143
144
|
return;
|
|
144
145
|
}
|
|
@@ -155,10 +156,17 @@ async function main() {
|
|
|
155
156
|
}
|
|
156
157
|
}
|
|
157
158
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
159
|
+
server.once('listening', () => {
|
|
160
|
+
const address = server.address() || { port };
|
|
161
|
+
debug('[app_worker:%s] listening at %j', process.pid, address);
|
|
162
|
+
AppWorker.send({
|
|
163
|
+
to: 'master',
|
|
164
|
+
action: 'app-start',
|
|
165
|
+
data: {
|
|
166
|
+
address,
|
|
167
|
+
workerId: AppWorker.workerId,
|
|
168
|
+
},
|
|
169
|
+
});
|
|
162
170
|
});
|
|
163
171
|
}
|
|
164
172
|
|
package/src/master.ts
CHANGED
|
@@ -153,6 +153,7 @@ export class Master extends ReadyEventEmitter {
|
|
|
153
153
|
// get the real port from options and app.config
|
|
154
154
|
// app worker will send after loading
|
|
155
155
|
this.on('realport', ({ port, protocol }) => {
|
|
156
|
+
this.logger.info('[master] got realport: %s, protocol: %s', port, protocol);
|
|
156
157
|
if (port) {
|
|
157
158
|
this.#realPort = port;
|
|
158
159
|
}
|
|
@@ -453,8 +454,10 @@ export class Master extends ReadyEventEmitter {
|
|
|
453
454
|
workerId: number;
|
|
454
455
|
address: ListeningAddress;
|
|
455
456
|
}) {
|
|
456
|
-
const
|
|
457
|
+
const worker = this.workerManager.getWorker(data.workerId)!;
|
|
458
|
+
this.log('[master] got app_worker#%s:%s app-start event, data: %j', worker.id, worker.workerId, data);
|
|
457
459
|
|
|
460
|
+
const address = data.address;
|
|
458
461
|
// worker should listen stickyWorkerPort when sticky mode
|
|
459
462
|
if (this.options.sticky) {
|
|
460
463
|
if (String(address.port) !== String(this.options.stickyWorkerPort)) {
|
|
@@ -466,6 +469,7 @@ export class Master extends ReadyEventEmitter {
|
|
|
466
469
|
(String(address.port) !== String(this.#realPort))) {
|
|
467
470
|
return;
|
|
468
471
|
}
|
|
472
|
+
worker.state = 'listening';
|
|
469
473
|
|
|
470
474
|
// send message to agent with alive workers
|
|
471
475
|
this.messenger.send({
|
|
@@ -473,10 +477,16 @@ export class Master extends ReadyEventEmitter {
|
|
|
473
477
|
to: 'agent',
|
|
474
478
|
data: this.workerManager.getListeningWorkerIds(),
|
|
475
479
|
});
|
|
480
|
+
// send message to app with current agent worker id
|
|
481
|
+
this.messenger.send({
|
|
482
|
+
action: 'egg-pids',
|
|
483
|
+
to: 'app',
|
|
484
|
+
data: [ this.agentWorker.instance.workerId ],
|
|
485
|
+
receiverWorkerId: String(worker.workerId),
|
|
486
|
+
receiverPid: String(worker.workerId),
|
|
487
|
+
});
|
|
476
488
|
|
|
477
489
|
this.appWorker.startSuccessCount++;
|
|
478
|
-
|
|
479
|
-
const worker = this.workerManager.getWorker(data.workerId)!;
|
|
480
490
|
const remain = this.appWorker.isAllWorkerStarted ? 0 : this.options.workers - this.appWorker.startSuccessCount;
|
|
481
491
|
this.log('[master] app_worker#%s:%s started at %s, remain %s (%sms)',
|
|
482
492
|
worker.id, worker.workerId, address.port, remain,
|