@eggjs/cluster 4.0.0-beta.20 → 4.0.0-beta.21
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_worker.d.ts +1 -1
- package/dist/agent_worker.js +64 -51
- package/dist/app_worker.d.ts +1 -1
- package/dist/app_worker.js +166 -128
- package/dist/dirname.d.ts +1 -0
- package/dist/dirname.js +11 -0
- package/dist/error/ClusterAgentWorkerError.d.ts +10 -0
- package/dist/error/ClusterAgentWorkerError.js +19 -0
- package/dist/error/ClusterWorkerExceptionError.d.ts +7 -0
- package/dist/error/ClusterWorkerExceptionError.js +14 -0
- package/dist/error/index.d.ts +2 -0
- package/dist/error/index.js +3 -0
- package/dist/index.d.ts +5 -445
- package/dist/index.js +17 -709
- package/dist/master.d.ts +90 -0
- package/dist/master.js +553 -0
- package/dist/utils/messenger.d.ts +92 -0
- package/dist/utils/messenger.js +179 -0
- package/dist/utils/mode/base/agent.d.ts +38 -0
- package/dist/utils/mode/base/agent.js +65 -0
- package/dist/utils/mode/base/app.d.ts +48 -0
- package/dist/utils/mode/base/app.js +80 -0
- package/dist/utils/mode/impl/process/agent.d.ts +18 -0
- package/dist/utils/mode/impl/process/agent.js +103 -0
- package/dist/utils/mode/impl/process/app.d.ts +21 -0
- package/dist/utils/mode/impl/process/app.js +119 -0
- package/dist/utils/mode/impl/worker_threads/agent.d.ts +18 -0
- package/dist/utils/mode/impl/worker_threads/agent.js +84 -0
- package/dist/utils/mode/impl/worker_threads/app.d.ts +26 -0
- package/dist/utils/mode/impl/worker_threads/app.js +137 -0
- package/dist/utils/options.d.ts +80 -0
- package/dist/utils/options.js +81 -0
- package/dist/utils/terminate.d.ts +6 -0
- package/dist/utils/terminate.js +81 -0
- package/dist/utils/worker_manager.d.ts +25 -0
- package/dist/utils/worker_manager.js +74 -0
- package/package.json +6 -6
- package/dist/agent-griHEaCW.js +0 -246
- package/dist/app-5Was1vub.js +0 -315
- package/dist/terminate-w3g0oQgq.js +0 -71
package/dist/agent_worker.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export {};
|
package/dist/agent_worker.js
CHANGED
|
@@ -1,55 +1,68 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const debug = debuglog("egg/cluster/agent_worker");
|
|
1
|
+
import { debuglog } from 'node:util';
|
|
2
|
+
import { EggConsoleLogger as ConsoleLogger } from 'egg-logger';
|
|
3
|
+
import { importModule } from '@eggjs/utils';
|
|
4
|
+
import { BaseAgentWorker } from "./utils/mode/base/agent.js";
|
|
5
|
+
import { AgentThreadWorker } from "./utils/mode/impl/worker_threads/agent.js";
|
|
6
|
+
import { AgentProcessWorker } from "./utils/mode/impl/process/agent.js";
|
|
7
|
+
const debug = debuglog('egg/cluster/agent_worker');
|
|
9
8
|
/**
|
|
10
|
-
* agent worker is child_process forked by master.
|
|
11
|
-
*
|
|
12
|
-
* agent worker only exit in two cases:
|
|
13
|
-
* - receive signal SIGTERM, exit code 0 (exit gracefully)
|
|
14
|
-
* - receive disconnect event, exit code 110 (maybe master exit in accident)
|
|
15
|
-
*/
|
|
9
|
+
* agent worker is child_process forked by master.
|
|
10
|
+
*
|
|
11
|
+
* agent worker only exit in two cases:
|
|
12
|
+
* - receive signal SIGTERM, exit code 0 (exit gracefully)
|
|
13
|
+
* - receive disconnect event, exit code 110 (maybe master exit in accident)
|
|
14
|
+
*/
|
|
16
15
|
async function main() {
|
|
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
|
-
|
|
16
|
+
// $ node agent_worker.js options
|
|
17
|
+
const options = JSON.parse(process.argv[2]);
|
|
18
|
+
if (options.require) {
|
|
19
|
+
// inject
|
|
20
|
+
for (const mod of options.require) {
|
|
21
|
+
await importModule(mod, {
|
|
22
|
+
paths: [options.baseDir],
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
let AgentWorker;
|
|
27
|
+
if (options.startMode === 'worker_threads') {
|
|
28
|
+
AgentWorker = AgentThreadWorker;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
AgentWorker = AgentProcessWorker;
|
|
32
|
+
}
|
|
33
|
+
const consoleLogger = new ConsoleLogger({ level: process.env.EGG_AGENT_WORKER_LOGGER_LEVEL });
|
|
34
|
+
const { Agent } = await importModule(options.framework, {
|
|
35
|
+
paths: [options.baseDir],
|
|
36
|
+
});
|
|
37
|
+
debug('new Agent with options %j', options);
|
|
38
|
+
let agent;
|
|
39
|
+
try {
|
|
40
|
+
agent = new Agent(options);
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
consoleLogger.error(err);
|
|
44
|
+
throw err;
|
|
45
|
+
}
|
|
46
|
+
function startErrorHandler(err) {
|
|
47
|
+
consoleLogger.error(err);
|
|
48
|
+
consoleLogger.error('[agent_worker] start error, exiting with code:1');
|
|
49
|
+
AgentWorker.kill();
|
|
50
|
+
}
|
|
51
|
+
agent.ready((err) => {
|
|
52
|
+
// don't send started message to master when start error
|
|
53
|
+
if (err) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
agent.removeListener('error', startErrorHandler);
|
|
57
|
+
AgentWorker.send({ action: 'agent-start', to: 'master' });
|
|
58
|
+
});
|
|
59
|
+
// exit if agent start error
|
|
60
|
+
agent.once('error', startErrorHandler);
|
|
61
|
+
AgentWorker.gracefulExit({
|
|
62
|
+
logger: consoleLogger,
|
|
63
|
+
label: 'agent_worker',
|
|
64
|
+
beforeExit: () => agent.close(),
|
|
65
|
+
});
|
|
51
66
|
}
|
|
52
67
|
main();
|
|
53
|
-
|
|
54
|
-
//#endregion
|
|
55
|
-
export { };
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnRfd29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FnZW50X3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFeEUsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFFbkQ7Ozs7OztHQU1HO0FBQ0gsS0FBSyxVQUFVLElBQUk7SUFDakIsaUNBQWlDO0lBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FLekMsQ0FBQztJQUNGLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLFNBQVM7UUFDVCxLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFlBQVksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7YUFDekIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFdBQW1DLENBQUM7SUFDeEMsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsV0FBVyxHQUFHLGlCQUF3QixDQUFDO0lBQ3pDLENBQUM7U0FBTSxDQUFDO1FBQ04sV0FBVyxHQUFHLGtCQUF5QixDQUFDO0lBQzFDLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFLENBQUMsQ0FBQztJQUM5RixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtRQUN0RCxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0tBQ3pCLENBQUMsQ0FBQztJQUNILEtBQUssQ0FBQywyQkFBMkIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1QyxJQUFJLEtBQVUsQ0FBQztJQUNmLElBQUksQ0FBQztRQUNILEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsTUFBTSxHQUFHLENBQUM7SUFDWixDQUFDO0lBRUQsU0FBUyxpQkFBaUIsQ0FBQyxHQUFVO1FBQ25DLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsYUFBYSxDQUFDLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1FBQ3ZFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO1FBQzFCLHdEQUF3RDtRQUN4RCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pELFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQyxDQUFDO0lBRUgsNEJBQTRCO0lBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFFdkMsV0FBVyxDQUFDLFlBQVksQ0FBQztRQUN2QixNQUFNLEVBQUUsYUFBYTtRQUNyQixLQUFLLEVBQUUsY0FBYztRQUNyQixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtLQUNoQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMifQ==
|
package/dist/app_worker.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export {};
|
package/dist/app_worker.js
CHANGED
|
@@ -1,131 +1,169 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import { EggConsoleLogger } from
|
|
6
|
-
import { importModule } from
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const debug = debuglog("egg/cluster/app_worker");
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { createServer as createHttpServer } from 'node:http';
|
|
3
|
+
import { createServer as createHttpsServer } from 'node:https';
|
|
4
|
+
import { debuglog } from 'node:util';
|
|
5
|
+
import { EggConsoleLogger as ConsoleLogger } from 'egg-logger';
|
|
6
|
+
import { importModule } from '@eggjs/utils';
|
|
7
|
+
import { BaseAppWorker } from "./utils/mode/base/app.js";
|
|
8
|
+
import { AppThreadWorker } from "./utils/mode/impl/worker_threads/app.js";
|
|
9
|
+
import { AppProcessWorker } from "./utils/mode/impl/process/app.js";
|
|
10
|
+
const debug = debuglog('egg/cluster/app_worker');
|
|
12
11
|
async function main() {
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
12
|
+
// $ node app_worker.js options-json-string
|
|
13
|
+
const options = JSON.parse(process.argv[2]);
|
|
14
|
+
if (options.require) {
|
|
15
|
+
// inject
|
|
16
|
+
for (const mod of options.require) {
|
|
17
|
+
await importModule(mod, {
|
|
18
|
+
paths: [options.baseDir],
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
let AppWorker;
|
|
23
|
+
if (options.startMode === 'worker_threads') {
|
|
24
|
+
AppWorker = AppThreadWorker;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
AppWorker = AppProcessWorker;
|
|
28
|
+
}
|
|
29
|
+
const consoleLogger = new ConsoleLogger({
|
|
30
|
+
level: process.env.EGG_APP_WORKER_LOGGER_LEVEL,
|
|
31
|
+
});
|
|
32
|
+
const { Application } = await importModule(options.framework, {
|
|
33
|
+
paths: [options.baseDir],
|
|
34
|
+
});
|
|
35
|
+
debug('[app_worker:%s] new Application with options %j', process.pid, options);
|
|
36
|
+
let app;
|
|
37
|
+
try {
|
|
38
|
+
app = new Application(options);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
consoleLogger.error(err);
|
|
42
|
+
throw err;
|
|
43
|
+
}
|
|
44
|
+
app.ready(startServer);
|
|
45
|
+
function exitProcess() {
|
|
46
|
+
// Use SIGTERM kill process, ensure trigger the gracefulExit
|
|
47
|
+
AppWorker.kill();
|
|
48
|
+
}
|
|
49
|
+
// exit if worker start timeout
|
|
50
|
+
app.once('startTimeout', startTimeoutHandler);
|
|
51
|
+
function startTimeoutHandler() {
|
|
52
|
+
consoleLogger.error('[app_worker] start timeout, exiting with code:1');
|
|
53
|
+
exitProcess();
|
|
54
|
+
}
|
|
55
|
+
function startServer(err) {
|
|
56
|
+
if (err) {
|
|
57
|
+
consoleLogger.error(err);
|
|
58
|
+
consoleLogger.error('[app_worker] start error, exiting with code:1');
|
|
59
|
+
exitProcess();
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const clusterConfig = app.config.cluster ?? {};
|
|
63
|
+
const listenConfig = clusterConfig.listen ?? {};
|
|
64
|
+
const httpsOptions = {
|
|
65
|
+
...clusterConfig.https,
|
|
66
|
+
...options.https,
|
|
67
|
+
};
|
|
68
|
+
const port = (app.options.port = options.port || listenConfig.port);
|
|
69
|
+
const debugPort = options.debugPort;
|
|
70
|
+
const protocol = httpsOptions.key && httpsOptions.cert ? 'https' : 'http';
|
|
71
|
+
debug('[app_worker:%s] listenConfig: %j, real port: %o, protocol: %o, debugPort: %o', process.pid, listenConfig, port, protocol, debugPort);
|
|
72
|
+
AppWorker.send({
|
|
73
|
+
to: 'master',
|
|
74
|
+
action: 'realport',
|
|
75
|
+
data: {
|
|
76
|
+
port,
|
|
77
|
+
protocol,
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
app.removeListener('startTimeout', startTimeoutHandler);
|
|
81
|
+
let server;
|
|
82
|
+
let debugPortServer;
|
|
83
|
+
// https config
|
|
84
|
+
if (protocol === 'https') {
|
|
85
|
+
httpsOptions.key = fs.readFileSync(httpsOptions.key);
|
|
86
|
+
httpsOptions.cert = fs.readFileSync(httpsOptions.cert);
|
|
87
|
+
httpsOptions.ca = httpsOptions.ca && fs.readFileSync(httpsOptions.ca);
|
|
88
|
+
server = createHttpsServer(httpsOptions, app.callback());
|
|
89
|
+
if (debugPort) {
|
|
90
|
+
debugPortServer = createHttpServer(app.callback());
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
server = createHttpServer(app.callback());
|
|
95
|
+
if (debugPort) {
|
|
96
|
+
debugPortServer = server;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
server.once('error', (err) => {
|
|
100
|
+
consoleLogger.error('[app_worker] server got error: %s, code: %s', err.message, err.code);
|
|
101
|
+
exitProcess();
|
|
102
|
+
});
|
|
103
|
+
// emit `server` event in app
|
|
104
|
+
app.emit('server', server);
|
|
105
|
+
if (options.sticky && options.stickyWorkerPort) {
|
|
106
|
+
// only allow connection from localhost
|
|
107
|
+
server.listen(options.stickyWorkerPort, '127.0.0.1');
|
|
108
|
+
// Listen to messages was sent from the master. Ignore everything else.
|
|
109
|
+
AppWorker.on('message', (message, connection) => {
|
|
110
|
+
if (message !== 'sticky-session:connection') {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
// Emulate a connection event on the server by emitting the
|
|
114
|
+
// event with the connection the master sent us.
|
|
115
|
+
server.emit('connection', connection);
|
|
116
|
+
connection.resume();
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
if (listenConfig.path) {
|
|
121
|
+
server.listen(listenConfig.path);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
if (typeof port !== 'number') {
|
|
125
|
+
consoleLogger.error('[app_worker:%s] port should be number, but got %s(%s)', process.pid, port, typeof port);
|
|
126
|
+
exitProcess();
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const args = [port];
|
|
130
|
+
if (listenConfig.hostname) {
|
|
131
|
+
args.push(listenConfig.hostname);
|
|
132
|
+
}
|
|
133
|
+
debug('listen options %j', args);
|
|
134
|
+
server.listen(...args);
|
|
135
|
+
}
|
|
136
|
+
if (debugPortServer) {
|
|
137
|
+
debug('listen on debug port: %s', debugPort);
|
|
138
|
+
debugPortServer.listen(debugPort);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
server.once('listening', () => {
|
|
142
|
+
let address = server.address() || { port };
|
|
143
|
+
if (typeof address === 'string') {
|
|
144
|
+
// https://nodejs.org/api/cluster.html#cluster_event_listening_1
|
|
145
|
+
// Unix domain socket
|
|
146
|
+
address = {
|
|
147
|
+
address,
|
|
148
|
+
addressType: -1,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
debug('[app_worker:%s] listening at %j', process.pid, address);
|
|
152
|
+
AppWorker.send({
|
|
153
|
+
to: 'master',
|
|
154
|
+
action: 'app-start',
|
|
155
|
+
data: {
|
|
156
|
+
address,
|
|
157
|
+
workerId: AppWorker.workerId,
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
AppWorker.gracefulExit({
|
|
163
|
+
logger: consoleLogger,
|
|
164
|
+
label: 'app_worker',
|
|
165
|
+
beforeExit: () => app.close(),
|
|
166
|
+
});
|
|
127
167
|
}
|
|
128
168
|
main();
|
|
129
|
-
|
|
130
|
-
//#endregion
|
|
131
|
-
export { };
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwX3dvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBfd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLEVBQUUsWUFBWSxJQUFJLGdCQUFnQixFQUFlLE1BQU0sV0FBVyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLElBQUksaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsZ0JBQWdCLElBQUksYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUVqRCxLQUFLLFVBQVUsSUFBSTtJQUNqQiwyQ0FBMkM7SUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQVV6QyxDQUFDO0lBQ0YsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsU0FBUztRQUNULEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xDLE1BQU0sWUFBWSxDQUFDLEdBQUcsRUFBRTtnQkFDdEIsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQzthQUN6QixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksU0FBK0IsQ0FB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getSrcDirname(): string;
|
package/dist/dirname.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { fileURLToPath } from 'node:url';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
export function getSrcDirname() {
|
|
4
|
+
if (typeof __dirname !== 'undefined') {
|
|
5
|
+
return __dirname;
|
|
6
|
+
}
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
8
|
+
// @ts-ignore
|
|
9
|
+
return path.dirname(fileURLToPath(import.meta.url));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlybmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kaXJuYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE1BQU0sVUFBVSxhQUFhO0lBQzNCLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDckMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELDZEQUE2RDtJQUM3RCxhQUFhO0lBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQyJ9
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export class ClusterAgentWorkerError extends Error {
|
|
2
|
+
id;
|
|
3
|
+
/**
|
|
4
|
+
* pid in process mode
|
|
5
|
+
* tid in worker_threads mode
|
|
6
|
+
*/
|
|
7
|
+
workerId;
|
|
8
|
+
status;
|
|
9
|
+
constructor(id, workerId, status, error) {
|
|
10
|
+
const message = `Got agent worker error: ${error.message}`;
|
|
11
|
+
super(message, { cause: error });
|
|
12
|
+
this.name = this.constructor.name;
|
|
13
|
+
this.id = id;
|
|
14
|
+
this.workerId = workerId;
|
|
15
|
+
this.status = status;
|
|
16
|
+
Error.captureStackTrace(this, this.constructor);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2x1c3RlckFnZW50V29ya2VyRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3IvQ2x1c3RlckFnZW50V29ya2VyRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHVCQUF3QixTQUFRLEtBQUs7SUFDaEQsRUFBRSxDQUFTO0lBQ1g7OztPQUdHO0lBQ0gsUUFBUSxDQUFTO0lBQ2pCLE1BQU0sQ0FBUztJQUVmLFlBQVksRUFBVSxFQUFFLFFBQWdCLEVBQUUsTUFBYyxFQUFFLEtBQVk7UUFDcEUsTUFBTSxPQUFPLEdBQUcsMkJBQTJCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzRCxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export class ClusterWorkerExceptionError extends Error {
|
|
2
|
+
count;
|
|
3
|
+
constructor(agent, worker) {
|
|
4
|
+
const message = `[master] ${agent} agent and ${worker} worker(s) alive, exit to avoid unknown state`;
|
|
5
|
+
super(message);
|
|
6
|
+
this.name = this.constructor.name;
|
|
7
|
+
this.count = {
|
|
8
|
+
agent,
|
|
9
|
+
worker,
|
|
10
|
+
};
|
|
11
|
+
Error.captureStackTrace(this, this.constructor);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2x1c3RlcldvcmtlckV4Y2VwdGlvbkVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9yL0NsdXN0ZXJXb3JrZXJFeGNlcHRpb25FcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsS0FBSztJQUNwRCxLQUFLLENBR0g7SUFFRixZQUFZLEtBQWEsRUFBRSxNQUFjO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLFlBQVksS0FBSyxjQUFjLE1BQU0sK0NBQStDLENBQUM7UUFDckcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsS0FBSztZQUNMLE1BQU07U0FDUCxDQUFDO1FBQ0YsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from "./ClusterAgentWorkerError.js";
|
|
2
|
+
export * from "./ClusterWorkerExceptionError.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGtDQUFrQyxDQUFDIn0=
|