@eggjs/cluster 3.0.1 → 3.1.0-beta.10
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 +17 -21
- package/dist/dirname.js +11 -0
- package/dist/error/ClusterAgentWorkerError.d.ts +13 -0
- package/dist/error/ClusterAgentWorkerError.js +22 -0
- package/dist/error/ClusterWorkerExceptionError.d.ts +10 -0
- package/dist/error/ClusterWorkerExceptionError.js +17 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +24 -0
- package/dist/master.d.ts +96 -0
- package/dist/master.js +426 -0
- package/dist/utils/messenger.d.ts +96 -0
- package/dist/utils/messenger.js +144 -0
- package/dist/utils/mode/base/agent.d.ts +45 -0
- package/dist/utils/mode/base/agent.js +63 -0
- package/dist/utils/mode/base/app.d.ts +56 -0
- package/dist/utils/mode/base/app.js +77 -0
- package/dist/utils/mode/impl/process/agent.d.ts +22 -0
- package/dist/utils/mode/impl/process/agent.js +93 -0
- package/dist/utils/mode/impl/process/app.d.ts +12 -0
- package/dist/utils/mode/impl/process/app.js +117 -0
- package/dist/utils/mode/impl/worker_threads/agent.d.ts +22 -0
- package/dist/utils/mode/impl/worker_threads/agent.js +79 -0
- package/dist/utils/mode/impl/worker_threads/app.d.ts +13 -0
- package/dist/utils/mode/impl/worker_threads/app.js +128 -0
- package/dist/utils/options.d.ts +83 -0
- package/dist/utils/options.js +56 -0
- package/dist/utils/terminate.js +62 -0
- package/dist/utils/worker_manager.d.ts +32 -0
- package/dist/utils/worker_manager.js +68 -0
- package/package.json +39 -63
- package/dist/commonjs/agent_worker.d.ts +0 -1
- package/dist/commonjs/agent_worker.js +0 -69
- package/dist/commonjs/app_worker.d.ts +0 -1
- package/dist/commonjs/app_worker.js +0 -173
- package/dist/commonjs/dirname.d.ts +0 -1
- package/dist/commonjs/dirname.js +0 -17
- package/dist/commonjs/error/ClusterAgentWorkerError.d.ts +0 -10
- package/dist/commonjs/error/ClusterAgentWorkerError.js +0 -23
- package/dist/commonjs/error/ClusterWorkerExceptionError.d.ts +0 -7
- package/dist/commonjs/error/ClusterWorkerExceptionError.js +0 -18
- package/dist/commonjs/error/index.d.ts +0 -2
- package/dist/commonjs/error/index.js +0 -19
- package/dist/commonjs/index.d.ts +0 -17
- package/dist/commonjs/index.js +0 -37
- package/dist/commonjs/master.d.ts +0 -90
- package/dist/commonjs/master.js +0 -560
- package/dist/commonjs/package.json +0 -3
- package/dist/commonjs/utils/messenger.d.ts +0 -92
- package/dist/commonjs/utils/messenger.js +0 -186
- package/dist/commonjs/utils/mode/base/agent.d.ts +0 -38
- package/dist/commonjs/utils/mode/base/agent.js +0 -68
- package/dist/commonjs/utils/mode/base/app.d.ts +0 -48
- package/dist/commonjs/utils/mode/base/app.js +0 -83
- package/dist/commonjs/utils/mode/impl/process/agent.d.ts +0 -18
- package/dist/commonjs/utils/mode/impl/process/agent.js +0 -108
- package/dist/commonjs/utils/mode/impl/process/app.d.ts +0 -21
- package/dist/commonjs/utils/mode/impl/process/app.js +0 -127
- package/dist/commonjs/utils/mode/impl/worker_threads/agent.d.ts +0 -18
- package/dist/commonjs/utils/mode/impl/worker_threads/agent.js +0 -91
- package/dist/commonjs/utils/mode/impl/worker_threads/app.d.ts +0 -26
- package/dist/commonjs/utils/mode/impl/worker_threads/app.js +0 -142
- package/dist/commonjs/utils/options.d.ts +0 -80
- package/dist/commonjs/utils/options.js +0 -83
- package/dist/commonjs/utils/terminate.d.ts +0 -6
- package/dist/commonjs/utils/terminate.js +0 -89
- package/dist/commonjs/utils/worker_manager.d.ts +0 -25
- package/dist/commonjs/utils/worker_manager.js +0 -76
- package/dist/esm/agent_worker.d.ts +0 -1
- package/dist/esm/agent_worker.js +0 -67
- package/dist/esm/app_worker.d.ts +0 -1
- package/dist/esm/app_worker.js +0 -168
- package/dist/esm/dirname.d.ts +0 -1
- package/dist/esm/dirname.js +0 -11
- package/dist/esm/error/ClusterAgentWorkerError.d.ts +0 -10
- package/dist/esm/error/ClusterAgentWorkerError.js +0 -19
- package/dist/esm/error/ClusterWorkerExceptionError.d.ts +0 -7
- package/dist/esm/error/ClusterWorkerExceptionError.js +0 -14
- package/dist/esm/error/index.d.ts +0 -2
- package/dist/esm/error/index.js +0 -3
- package/dist/esm/index.d.ts +0 -17
- package/dist/esm/index.js +0 -19
- package/dist/esm/master.d.ts +0 -90
- package/dist/esm/master.js +0 -553
- package/dist/esm/package.json +0 -3
- package/dist/esm/utils/messenger.d.ts +0 -92
- package/dist/esm/utils/messenger.js +0 -179
- package/dist/esm/utils/mode/base/agent.d.ts +0 -38
- package/dist/esm/utils/mode/base/agent.js +0 -60
- package/dist/esm/utils/mode/base/app.d.ts +0 -48
- package/dist/esm/utils/mode/base/app.js +0 -75
- package/dist/esm/utils/mode/impl/process/agent.d.ts +0 -18
- package/dist/esm/utils/mode/impl/process/agent.js +0 -103
- package/dist/esm/utils/mode/impl/process/app.d.ts +0 -21
- package/dist/esm/utils/mode/impl/process/app.js +0 -119
- package/dist/esm/utils/mode/impl/worker_threads/agent.d.ts +0 -18
- package/dist/esm/utils/mode/impl/worker_threads/agent.js +0 -83
- package/dist/esm/utils/mode/impl/worker_threads/app.d.ts +0 -26
- package/dist/esm/utils/mode/impl/worker_threads/app.js +0 -137
- package/dist/esm/utils/options.d.ts +0 -80
- package/dist/esm/utils/options.js +0 -77
- package/dist/esm/utils/terminate.d.ts +0 -6
- package/dist/esm/utils/terminate.js +0 -86
- package/dist/esm/utils/worker_manager.d.ts +0 -25
- package/dist/esm/utils/worker_manager.js +0 -72
- package/dist/package.json +0 -4
- package/src/agent_worker.ts +0 -80
- package/src/app_worker.ts +0 -196
- package/src/dirname.ts +0 -11
- package/src/error/ClusterAgentWorkerError.ts +0 -19
- package/src/error/ClusterWorkerExceptionError.ts +0 -17
- package/src/error/index.ts +0 -2
- package/src/index.ts +0 -26
- package/src/master.ts +0 -658
- package/src/utils/messenger.ts +0 -207
- package/src/utils/mode/base/agent.ts +0 -90
- package/src/utils/mode/base/app.ts +0 -119
- package/src/utils/mode/impl/process/agent.ts +0 -119
- package/src/utils/mode/impl/process/app.ts +0 -140
- package/src/utils/mode/impl/worker_threads/agent.ts +0 -99
- package/src/utils/mode/impl/worker_threads/app.ts +0 -164
- package/src/utils/options.ts +0 -171
- package/src/utils/terminate.ts +0 -97
- package/src/utils/worker_manager.ts +0 -87
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
7
|
-
const node_http_1 = require("node:http");
|
|
8
|
-
const node_https_1 = require("node:https");
|
|
9
|
-
const node_util_1 = require("node:util");
|
|
10
|
-
const egg_logger_1 = require("egg-logger");
|
|
11
|
-
const utils_1 = require("@eggjs/utils");
|
|
12
|
-
const app_js_1 = require("./utils/mode/impl/worker_threads/app.js");
|
|
13
|
-
const app_js_2 = require("./utils/mode/impl/process/app.js");
|
|
14
|
-
const debug = (0, node_util_1.debuglog)('@eggjs/cluster/app_worker');
|
|
15
|
-
async function main() {
|
|
16
|
-
// $ node app_worker.js options-json-string
|
|
17
|
-
const options = JSON.parse(process.argv[2]);
|
|
18
|
-
if (options.require) {
|
|
19
|
-
// inject
|
|
20
|
-
for (const mod of options.require) {
|
|
21
|
-
await (0, utils_1.importModule)(mod, {
|
|
22
|
-
paths: [options.baseDir],
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
let AppWorker;
|
|
27
|
-
if (options.startMode === 'worker_threads') {
|
|
28
|
-
AppWorker = app_js_1.AppThreadWorker;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
AppWorker = app_js_2.AppProcessWorker;
|
|
32
|
-
}
|
|
33
|
-
const consoleLogger = new egg_logger_1.EggConsoleLogger({
|
|
34
|
-
level: process.env.EGG_APP_WORKER_LOGGER_LEVEL,
|
|
35
|
-
});
|
|
36
|
-
const { Application } = await (0, utils_1.importModule)(options.framework, {
|
|
37
|
-
paths: [options.baseDir],
|
|
38
|
-
});
|
|
39
|
-
debug('[app_worker:%s] new Application with options %j', process.pid, options);
|
|
40
|
-
let app;
|
|
41
|
-
try {
|
|
42
|
-
app = new Application(options);
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
consoleLogger.error(err);
|
|
46
|
-
throw err;
|
|
47
|
-
}
|
|
48
|
-
app.ready(startServer);
|
|
49
|
-
function exitProcess() {
|
|
50
|
-
// Use SIGTERM kill process, ensure trigger the gracefulExit
|
|
51
|
-
AppWorker.kill();
|
|
52
|
-
}
|
|
53
|
-
// exit if worker start timeout
|
|
54
|
-
app.once('startTimeout', startTimeoutHandler);
|
|
55
|
-
function startTimeoutHandler() {
|
|
56
|
-
consoleLogger.error('[app_worker] start timeout, exiting with code:1');
|
|
57
|
-
exitProcess();
|
|
58
|
-
}
|
|
59
|
-
function startServer(err) {
|
|
60
|
-
if (err) {
|
|
61
|
-
consoleLogger.error(err);
|
|
62
|
-
consoleLogger.error('[app_worker] start error, exiting with code:1');
|
|
63
|
-
exitProcess();
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
const clusterConfig = app.config.cluster ?? {};
|
|
67
|
-
const listenConfig = clusterConfig.listen ?? {};
|
|
68
|
-
const httpsOptions = {
|
|
69
|
-
...clusterConfig.https,
|
|
70
|
-
...options.https,
|
|
71
|
-
};
|
|
72
|
-
const port = app.options.port = options.port || listenConfig.port;
|
|
73
|
-
const debugPort = options.debugPort;
|
|
74
|
-
const protocol = (httpsOptions.key && httpsOptions.cert) ? 'https' : 'http';
|
|
75
|
-
debug('[app_worker:%s] listenConfig: %j, real port: %o, protocol: %o, debugPort: %o', process.pid, listenConfig, port, protocol, debugPort);
|
|
76
|
-
AppWorker.send({
|
|
77
|
-
to: 'master',
|
|
78
|
-
action: 'realport',
|
|
79
|
-
data: {
|
|
80
|
-
port,
|
|
81
|
-
protocol,
|
|
82
|
-
},
|
|
83
|
-
});
|
|
84
|
-
app.removeListener('startTimeout', startTimeoutHandler);
|
|
85
|
-
let server;
|
|
86
|
-
let debugPortServer;
|
|
87
|
-
// https config
|
|
88
|
-
if (protocol === 'https') {
|
|
89
|
-
httpsOptions.key = node_fs_1.default.readFileSync(httpsOptions.key);
|
|
90
|
-
httpsOptions.cert = node_fs_1.default.readFileSync(httpsOptions.cert);
|
|
91
|
-
httpsOptions.ca = httpsOptions.ca && node_fs_1.default.readFileSync(httpsOptions.ca);
|
|
92
|
-
server = (0, node_https_1.createServer)(httpsOptions, app.callback());
|
|
93
|
-
if (debugPort) {
|
|
94
|
-
debugPortServer = (0, node_http_1.createServer)(app.callback());
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
server = (0, node_http_1.createServer)(app.callback());
|
|
99
|
-
if (debugPort) {
|
|
100
|
-
debugPortServer = server;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
server.once('error', (err) => {
|
|
104
|
-
consoleLogger.error('[app_worker] server got error: %s, code: %s', err.message, err.code);
|
|
105
|
-
exitProcess();
|
|
106
|
-
});
|
|
107
|
-
// emit `server` event in app
|
|
108
|
-
app.emit('server', server);
|
|
109
|
-
if (options.sticky && options.stickyWorkerPort) {
|
|
110
|
-
// only allow connection from localhost
|
|
111
|
-
server.listen(options.stickyWorkerPort, '127.0.0.1');
|
|
112
|
-
// Listen to messages was sent from the master. Ignore everything else.
|
|
113
|
-
AppWorker.on('message', (message, connection) => {
|
|
114
|
-
if (message !== 'sticky-session:connection') {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
// Emulate a connection event on the server by emitting the
|
|
118
|
-
// event with the connection the master sent us.
|
|
119
|
-
server.emit('connection', connection);
|
|
120
|
-
connection.resume();
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
if (listenConfig.path) {
|
|
125
|
-
server.listen(listenConfig.path);
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
if (typeof port !== 'number') {
|
|
129
|
-
consoleLogger.error('[app_worker:%s] port should be number, but got %s(%s)', process.pid, port, typeof port);
|
|
130
|
-
exitProcess();
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
const args = [port];
|
|
134
|
-
if (listenConfig.hostname) {
|
|
135
|
-
args.push(listenConfig.hostname);
|
|
136
|
-
}
|
|
137
|
-
debug('listen options %j', args);
|
|
138
|
-
server.listen(...args);
|
|
139
|
-
}
|
|
140
|
-
if (debugPortServer) {
|
|
141
|
-
debug('listen on debug port: %s', debugPort);
|
|
142
|
-
debugPortServer.listen(debugPort);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
server.once('listening', () => {
|
|
146
|
-
let address = server.address() || { port };
|
|
147
|
-
if (typeof address === 'string') {
|
|
148
|
-
// https://nodejs.org/api/cluster.html#cluster_event_listening_1
|
|
149
|
-
// Unix domain socket
|
|
150
|
-
address = {
|
|
151
|
-
address,
|
|
152
|
-
addressType: -1,
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
debug('[app_worker:%s] listening at %j', process.pid, address);
|
|
156
|
-
AppWorker.send({
|
|
157
|
-
to: 'master',
|
|
158
|
-
action: 'app-start',
|
|
159
|
-
data: {
|
|
160
|
-
address,
|
|
161
|
-
workerId: AppWorker.workerId,
|
|
162
|
-
},
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
AppWorker.gracefulExit({
|
|
167
|
-
logger: consoleLogger,
|
|
168
|
-
label: 'app_worker',
|
|
169
|
-
beforeExit: () => app.close(),
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
main();
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwX3dvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcHBfd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0RBQXlCO0FBQ3pCLHlDQUEwRTtBQUMxRSwyQ0FBK0Q7QUFFL0QseUNBQXFDO0FBQ3JDLDJDQUErRDtBQUMvRCx3Q0FBNEM7QUFFNUMsb0VBQTBFO0FBQzFFLDZEQUFvRTtBQUVwRSxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMsMkJBQTJCLENBQUMsQ0FBQztBQUVwRCxLQUFLLFVBQVUsSUFBSTtJQUNqQiwyQ0FBMkM7SUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQVV6QyxDQUFDO0lBQ0YsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsU0FBUztRQUNULEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xDLE1BQU0sSUFBQSxvQkFBWSxFQUFDLEdBQUcsRUFBRTtnQkFDdEIsS0FBSyxFQUFFLENBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBRTthQUMzQixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksU0FBK0IsQ0FBQztJQUNwQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxTQUFTLEdBQUcsd0JBQXNCLENBQUM7SUFDckMsQ0FBQztTQUFNLENBQUM7UUFDTixTQUFTLEdBQUcseUJBQXVCLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLElBQUksNkJBQWEsQ0FBQztRQUN0QyxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkI7S0FDL0MsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sSUFBQSxvQkFBWSxF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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function getSrcDirname(): string;
|
package/dist/commonjs/dirname.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getSrcDirname = getSrcDirname;
|
|
7
|
-
const node_url_1 = require("node:url");
|
|
8
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
-
function getSrcDirname() {
|
|
10
|
-
if (typeof __dirname !== 'undefined') {
|
|
11
|
-
return __dirname;
|
|
12
|
-
}
|
|
13
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
14
|
-
// @ts-ignore
|
|
15
|
-
return node_path_1.default.dirname((0, node_url_1.fileURLToPath)('import_meta_url_placeholder_by_tshy_after'));
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlybmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaXJuYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0Esc0NBT0M7QUFWRCx1Q0FBeUM7QUFDekMsMERBQTZCO0FBRTdCLFNBQWdCLGFBQWE7SUFDM0IsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsNkRBQTZEO0lBQzdELGFBQWE7SUFDYixPQUFPLG1CQUFJLENBQUMsT0FBTyxDQUFDLElBQUEsd0JBQWEsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQyJ9
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ClusterAgentWorkerError = void 0;
|
|
4
|
-
class ClusterAgentWorkerError extends Error {
|
|
5
|
-
id;
|
|
6
|
-
/**
|
|
7
|
-
* pid in process mode
|
|
8
|
-
* tid in worker_threads mode
|
|
9
|
-
*/
|
|
10
|
-
workerId;
|
|
11
|
-
status;
|
|
12
|
-
constructor(id, workerId, status, error) {
|
|
13
|
-
const message = `Got agent worker error: ${error.message}`;
|
|
14
|
-
super(message, { cause: error });
|
|
15
|
-
this.name = this.constructor.name;
|
|
16
|
-
this.id = id;
|
|
17
|
-
this.workerId = workerId;
|
|
18
|
-
this.status = status;
|
|
19
|
-
Error.captureStackTrace(this, this.constructor);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.ClusterAgentWorkerError = ClusterAgentWorkerError;
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2x1c3RlckFnZW50V29ya2VyRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXJyb3IvQ2x1c3RlckFnZW50V29ya2VyRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSx1QkFBd0IsU0FBUSxLQUFLO0lBQ2hELEVBQUUsQ0FBUztJQUNYOzs7T0FHRztJQUNILFFBQVEsQ0FBUztJQUNqQixNQUFNLENBQVM7SUFFZixZQUFZLEVBQVUsRUFBRSxRQUFnQixFQUFFLE1BQWMsRUFBRSxLQUFZO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLDJCQUEyQixLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFsQkQsMERBa0JDIn0=
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ClusterWorkerExceptionError = void 0;
|
|
4
|
-
class ClusterWorkerExceptionError extends Error {
|
|
5
|
-
count;
|
|
6
|
-
constructor(agent, worker) {
|
|
7
|
-
const message = `[master] ${agent} agent and ${worker} worker(s) alive, exit to avoid unknown state`;
|
|
8
|
-
super(message);
|
|
9
|
-
this.name = this.constructor.name;
|
|
10
|
-
this.count = {
|
|
11
|
-
agent,
|
|
12
|
-
worker,
|
|
13
|
-
};
|
|
14
|
-
Error.captureStackTrace(this, this.constructor);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.ClusterWorkerExceptionError = ClusterWorkerExceptionError;
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2x1c3RlcldvcmtlckV4Y2VwdGlvbkVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Vycm9yL0NsdXN0ZXJXb3JrZXJFeGNlcHRpb25FcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFhLDJCQUE0QixTQUFRLEtBQUs7SUFDcEQsS0FBSyxDQUdIO0lBRUYsWUFBWSxLQUFhLEVBQUUsTUFBYztRQUN2QyxNQUFNLE9BQU8sR0FBRyxZQUFZLEtBQUssY0FBYyxNQUFNLCtDQUErQyxDQUFDO1FBQ3JHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLEtBQUs7WUFDTCxNQUFNO1NBQ1AsQ0FBQztRQUNGLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQWhCRCxrRUFnQkMifQ==
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./ClusterAgentWorkerError.js"), exports);
|
|
18
|
-
__exportStar(require("./ClusterWorkerExceptionError.js"), exports);
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXJyb3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtEQUE2QztBQUM3QyxtRUFBaUQifQ==
|
package/dist/commonjs/index.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Master, MasterOptions } from './master.js';
|
|
2
|
-
import { ClusterOptions, ClusterHTTPSSecureOptions, ClusterStartMode } from './utils/options.js';
|
|
3
|
-
/**
|
|
4
|
-
* cluster start flow:
|
|
5
|
-
*
|
|
6
|
-
* [startCluster] -> master -> agent_worker -> new [Agent] -> agentWorkerLoader
|
|
7
|
-
* `-> app_worker -> new [Application] -> appWorkerLoader
|
|
8
|
-
*
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* start egg app
|
|
12
|
-
* @function Egg#startCluster
|
|
13
|
-
* @param {Object} options {@link Master}
|
|
14
|
-
*/
|
|
15
|
-
export declare function startCluster(options: ClusterOptions): Promise<void>;
|
|
16
|
-
export { Master, MasterOptions, ClusterOptions, ClusterHTTPSSecureOptions, ClusterStartMode, };
|
|
17
|
-
export * from './error/index.js';
|
package/dist/commonjs/index.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.Master = void 0;
|
|
18
|
-
exports.startCluster = startCluster;
|
|
19
|
-
const master_js_1 = require("./master.js");
|
|
20
|
-
Object.defineProperty(exports, "Master", { enumerable: true, get: function () { return master_js_1.Master; } });
|
|
21
|
-
/**
|
|
22
|
-
* cluster start flow:
|
|
23
|
-
*
|
|
24
|
-
* [startCluster] -> master -> agent_worker -> new [Agent] -> agentWorkerLoader
|
|
25
|
-
* `-> app_worker -> new [Application] -> appWorkerLoader
|
|
26
|
-
*
|
|
27
|
-
*/
|
|
28
|
-
/**
|
|
29
|
-
* start egg app
|
|
30
|
-
* @function Egg#startCluster
|
|
31
|
-
* @param {Object} options {@link Master}
|
|
32
|
-
*/
|
|
33
|
-
async function startCluster(options) {
|
|
34
|
-
await new master_js_1.Master(options).ready();
|
|
35
|
-
}
|
|
36
|
-
__exportStar(require("./error/index.js"), exports);
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsb0NBRUM7QUFsQkQsMkNBQW9EO0FBcUJsRCx1RkFyQk8sa0JBQU0sT0FxQlA7QUFsQlI7Ozs7OztHQU1HO0FBRUg7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxZQUFZLENBQUMsT0FBdUI7SUFDeEQsTUFBTSxJQUFJLGtCQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDcEMsQ0FBQztBQU9ELG1EQUFpQyJ9
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { ReadyEventEmitter } from 'get-ready';
|
|
2
|
-
import { EggConsoleLogger as ConsoleLogger } from 'egg-logger';
|
|
3
|
-
import { ClusterOptions, ParsedClusterOptions } from './utils/options.js';
|
|
4
|
-
import { WorkerManager } from './utils/worker_manager.js';
|
|
5
|
-
import { Messenger } from './utils/messenger.js';
|
|
6
|
-
import { AgentProcessUtils as ProcessAgentWorker } from './utils/mode/impl/process/agent.js';
|
|
7
|
-
import { AppProcessUtils as ProcessAppWorker } from './utils/mode/impl/process/app.js';
|
|
8
|
-
import { AgentThreadUtils as WorkerThreadsAgentWorker } from './utils/mode/impl/worker_threads/agent.js';
|
|
9
|
-
import { AppThreadUtils as WorkerThreadsAppWorker } from './utils/mode/impl/worker_threads/app.js';
|
|
10
|
-
export interface MasterOptions extends ParsedClusterOptions {
|
|
11
|
-
clusterPort?: number;
|
|
12
|
-
stickyWorkerPort?: number;
|
|
13
|
-
}
|
|
14
|
-
export declare class Master extends ReadyEventEmitter {
|
|
15
|
-
#private;
|
|
16
|
-
options: MasterOptions;
|
|
17
|
-
isStarted: boolean;
|
|
18
|
-
workerManager: WorkerManager;
|
|
19
|
-
messenger: Messenger;
|
|
20
|
-
isProduction: boolean;
|
|
21
|
-
agentWorkerIndex: number;
|
|
22
|
-
closed: boolean;
|
|
23
|
-
logger: ConsoleLogger;
|
|
24
|
-
agentWorker: ProcessAgentWorker | WorkerThreadsAgentWorker;
|
|
25
|
-
appWorker: ProcessAppWorker | WorkerThreadsAppWorker;
|
|
26
|
-
constructor(options?: ClusterOptions);
|
|
27
|
-
startByProcess(): void;
|
|
28
|
-
startByWorkerThreads(): void;
|
|
29
|
-
detectPorts(): Promise<void>;
|
|
30
|
-
log(msg: string, ...args: any[]): void;
|
|
31
|
-
startMasterSocketServer(cb: (err?: Error) => void): void;
|
|
32
|
-
stickyWorker(ip: string): import("./utils/mode/base/app.js").BaseAppWorker<import("worker_threads").Worker | import("cluster").Worker>;
|
|
33
|
-
forkAgentWorker(): void;
|
|
34
|
-
forkAppWorkers(): void;
|
|
35
|
-
/**
|
|
36
|
-
* close agent worker, App Worker will closed by cluster
|
|
37
|
-
*
|
|
38
|
-
* https://www.exratione.com/2013/05/die-child-process-die/
|
|
39
|
-
* make sure Agent Worker exit before master exit
|
|
40
|
-
*
|
|
41
|
-
* @param {number} timeout - kill agent timeout
|
|
42
|
-
* @return {Promise} -
|
|
43
|
-
*/
|
|
44
|
-
killAgentWorker(timeout: number): Promise<void>;
|
|
45
|
-
killAppWorkers(timeout: number): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Agent Worker exit handler
|
|
48
|
-
* Will exit during startup, and refork during running.
|
|
49
|
-
*/
|
|
50
|
-
onAgentExit(data: {
|
|
51
|
-
/** exit code */
|
|
52
|
-
code: number;
|
|
53
|
-
/** received signal */
|
|
54
|
-
signal: string;
|
|
55
|
-
}): void;
|
|
56
|
-
onAgentStart(): void;
|
|
57
|
-
/**
|
|
58
|
-
* App Worker exit handler
|
|
59
|
-
*/
|
|
60
|
-
onAppExit(data: {
|
|
61
|
-
workerId: number;
|
|
62
|
-
code: number;
|
|
63
|
-
signal: string;
|
|
64
|
-
}): void;
|
|
65
|
-
/**
|
|
66
|
-
* after app worker
|
|
67
|
-
*/
|
|
68
|
-
onAppStart(data: {
|
|
69
|
-
workerId: number;
|
|
70
|
-
address: ListeningAddress;
|
|
71
|
-
}): void;
|
|
72
|
-
/**
|
|
73
|
-
* master exit handler
|
|
74
|
-
*/
|
|
75
|
-
onExit(code: number): void;
|
|
76
|
-
onSignal(signal: string): void;
|
|
77
|
-
/**
|
|
78
|
-
* reload workers, for develop purpose
|
|
79
|
-
*/
|
|
80
|
-
onReload(): void;
|
|
81
|
-
close(): Promise<void>;
|
|
82
|
-
_doClose(): Promise<void>;
|
|
83
|
-
}
|
|
84
|
-
interface ListeningAddress {
|
|
85
|
-
port: number;
|
|
86
|
-
protocol: string;
|
|
87
|
-
address?: string;
|
|
88
|
-
addressType?: number;
|
|
89
|
-
}
|
|
90
|
-
export {};
|