@eggjs/cluster 3.0.1 → 3.1.0-beta.11
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/agent_worker.d.ts +1 -0
- package/dist/agent_worker.js +55 -0
- package/dist/app_worker.d.ts +1 -0
- package/dist/app_worker.js +131 -0
- 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 +41 -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,89 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.terminate = terminate;
|
|
4
|
-
const node_util_1 = require("node:util");
|
|
5
|
-
const promises_1 = require("node:timers/promises");
|
|
6
|
-
const node_events_1 = require("node:events");
|
|
7
|
-
const ps_tree_1 = require("@fengmk2/ps-tree");
|
|
8
|
-
const debug = (0, node_util_1.debuglog)('@eggjs/cluster/utils/terminate');
|
|
9
|
-
async function terminate(subProcess, timeout) {
|
|
10
|
-
const pid = subProcess.process?.pid ?? subProcess.pid;
|
|
11
|
-
const childPids = await getChildPids(pid);
|
|
12
|
-
await Promise.all([
|
|
13
|
-
killProcess(subProcess, timeout),
|
|
14
|
-
killChildren(childPids, timeout),
|
|
15
|
-
]);
|
|
16
|
-
}
|
|
17
|
-
// kill process, if SIGTERM not work, try SIGKILL
|
|
18
|
-
async function killProcess(subProcess, timeout) {
|
|
19
|
-
// https://github.com/nodejs/node/pull/34312
|
|
20
|
-
(subProcess.process ?? subProcess).kill('SIGTERM');
|
|
21
|
-
await Promise.race([
|
|
22
|
-
(0, node_events_1.once)(subProcess, 'exit'),
|
|
23
|
-
(0, promises_1.setTimeout)(timeout),
|
|
24
|
-
]);
|
|
25
|
-
if (subProcess.killed) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
// SIGKILL: http://man7.org/linux/man-pages/man7/signal.7.html
|
|
29
|
-
// worker: https://github.com/nodejs/node/blob/master/lib/internal/cluster/worker.js#L22
|
|
30
|
-
// subProcess.kill is wrapped to subProcess.destroy, it will wait to disconnected.
|
|
31
|
-
(subProcess.process ?? subProcess).kill('SIGKILL');
|
|
32
|
-
}
|
|
33
|
-
// kill all children processes, if SIGTERM not work, try SIGKILL
|
|
34
|
-
async function killChildren(childrenPids, timeout) {
|
|
35
|
-
if (childrenPids.length === 0) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
kill(childrenPids, 'SIGTERM');
|
|
39
|
-
const start = Date.now();
|
|
40
|
-
// if timeout is 1000, it will check twice.
|
|
41
|
-
const checkInterval = 400;
|
|
42
|
-
let unterminated = [];
|
|
43
|
-
while (Date.now() - start < timeout - checkInterval) {
|
|
44
|
-
await (0, promises_1.setTimeout)(checkInterval);
|
|
45
|
-
unterminated = getUnterminatedProcesses(childrenPids);
|
|
46
|
-
if (unterminated.length === 0) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
kill(unterminated, 'SIGKILL');
|
|
51
|
-
}
|
|
52
|
-
async function getChildPids(pid) {
|
|
53
|
-
let childrenPids = [];
|
|
54
|
-
try {
|
|
55
|
-
const children = await (0, ps_tree_1.pstree)(pid);
|
|
56
|
-
childrenPids = children.map(c => parseInt(c.PID));
|
|
57
|
-
}
|
|
58
|
-
catch (err) {
|
|
59
|
-
// if get children error, just ignore it
|
|
60
|
-
debug('pstree %s error: %s, ignore it', pid, err);
|
|
61
|
-
}
|
|
62
|
-
return childrenPids;
|
|
63
|
-
}
|
|
64
|
-
function kill(pids, signal) {
|
|
65
|
-
for (const pid of pids) {
|
|
66
|
-
try {
|
|
67
|
-
process.kill(pid, signal);
|
|
68
|
-
}
|
|
69
|
-
catch (err) {
|
|
70
|
-
// ignore
|
|
71
|
-
debug('kill %s error: %s, signal: %s, ignore it', pid, err, signal);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
function getUnterminatedProcesses(pids) {
|
|
76
|
-
return pids.filter(pid => {
|
|
77
|
-
try {
|
|
78
|
-
// success means it's still alive
|
|
79
|
-
process.kill(pid, 0);
|
|
80
|
-
return true;
|
|
81
|
-
}
|
|
82
|
-
catch (err) {
|
|
83
|
-
// error means it's dead
|
|
84
|
-
debug('kill %s error: %s, it still alive', pid, err);
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3Rlcm1pbmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLDhCQU9DO0FBbkJELHlDQUFxQztBQUNyQyxtREFBMkQ7QUFDM0QsNkNBQW1DO0FBRW5DLDhDQUEwQztBQUUxQyxNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQU1sRCxLQUFLLFVBQVUsU0FBUyxDQUFDLFVBQXNCLEVBQUUsT0FBZTtJQUNyRSxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3RELE1BQU0sU0FBUyxHQUFHLE1BQU0sWUFBWSxDQUFDLEdBQUksQ0FBQyxDQUFDO0lBQzNDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNoQixXQUFXLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQztRQUNoQyxZQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztLQUNqQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsaURBQWlEO0FBQ2pELEtBQUssVUFBVSxXQUFXLENBQUMsVUFBc0IsRUFBRSxPQUFlO0lBQ2hFLDRDQUE0QztJQUM1QyxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQztRQUNqQixJQUFBLGtCQUFJLEVBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQztRQUN4QixJQUFBLHFCQUFLLEVBQUMsT0FBTyxDQUFDO0tBQ2YsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEIsT0FBTztJQUNULENBQUM7SUFDRCw4REFBOEQ7SUFDOUQsd0ZBQXdGO0lBQ3hGLGtGQUFrRjtJQUNsRixDQUFDLFVBQVUs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
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from 'node:events';
|
|
2
|
-
import { BaseAgentWorker } from './mode/base/agent.js';
|
|
3
|
-
import { BaseAppWorker } from './mode/base/app.js';
|
|
4
|
-
export declare class WorkerManager extends EventEmitter {
|
|
5
|
-
agent: BaseAgentWorker | null;
|
|
6
|
-
workers: Map<number, BaseAppWorker<import("worker_threads").Worker | import("cluster").Worker>>;
|
|
7
|
-
exception: number;
|
|
8
|
-
timer: NodeJS.Timeout;
|
|
9
|
-
constructor();
|
|
10
|
-
getWorkers(): number[];
|
|
11
|
-
setAgent(agent: BaseAgentWorker): void;
|
|
12
|
-
getAgent(): BaseAgentWorker<import("child_process").ChildProcess | import("worker_threads").Worker> | null;
|
|
13
|
-
deleteAgent(): void;
|
|
14
|
-
setWorker(worker: BaseAppWorker): void;
|
|
15
|
-
getWorker(workerId: number): BaseAppWorker<import("worker_threads").Worker | import("cluster").Worker> | undefined;
|
|
16
|
-
deleteWorker(workerId: number): void;
|
|
17
|
-
listWorkerIds(): number[];
|
|
18
|
-
listWorkers(): BaseAppWorker<import("worker_threads").Worker | import("cluster").Worker>[];
|
|
19
|
-
getListeningWorkerIds(): number[];
|
|
20
|
-
count(): {
|
|
21
|
-
agent: number;
|
|
22
|
-
worker: number;
|
|
23
|
-
};
|
|
24
|
-
startCheck(): void;
|
|
25
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WorkerManager = void 0;
|
|
4
|
-
const node_events_1 = require("node:events");
|
|
5
|
-
// worker manager to record agent and worker forked by egg-cluster
|
|
6
|
-
// can do some check stuff here to monitor the healthy
|
|
7
|
-
class WorkerManager extends node_events_1.EventEmitter {
|
|
8
|
-
agent;
|
|
9
|
-
workers = new Map();
|
|
10
|
-
exception = 0;
|
|
11
|
-
timer;
|
|
12
|
-
constructor() {
|
|
13
|
-
super();
|
|
14
|
-
this.agent = null;
|
|
15
|
-
}
|
|
16
|
-
getWorkers() {
|
|
17
|
-
return Array.from(this.workers.keys());
|
|
18
|
-
}
|
|
19
|
-
setAgent(agent) {
|
|
20
|
-
this.agent = agent;
|
|
21
|
-
}
|
|
22
|
-
getAgent() {
|
|
23
|
-
return this.agent;
|
|
24
|
-
}
|
|
25
|
-
deleteAgent() {
|
|
26
|
-
this.agent = null;
|
|
27
|
-
}
|
|
28
|
-
setWorker(worker) {
|
|
29
|
-
this.workers.set(worker.workerId, worker);
|
|
30
|
-
}
|
|
31
|
-
getWorker(workerId) {
|
|
32
|
-
return this.workers.get(workerId);
|
|
33
|
-
}
|
|
34
|
-
deleteWorker(workerId) {
|
|
35
|
-
this.workers.delete(workerId);
|
|
36
|
-
}
|
|
37
|
-
listWorkerIds() {
|
|
38
|
-
return Array.from(this.workers.keys());
|
|
39
|
-
}
|
|
40
|
-
listWorkers() {
|
|
41
|
-
return Array.from(this.workers.values());
|
|
42
|
-
}
|
|
43
|
-
getListeningWorkerIds() {
|
|
44
|
-
const keys = [];
|
|
45
|
-
for (const [id, worker] of this.workers.entries()) {
|
|
46
|
-
if (worker.state === 'listening') {
|
|
47
|
-
keys.push(id);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return keys;
|
|
51
|
-
}
|
|
52
|
-
count() {
|
|
53
|
-
return {
|
|
54
|
-
agent: this.agent?.status === 'started' ? 1 : 0,
|
|
55
|
-
worker: this.listWorkerIds().length,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
// check agent and worker must both alive
|
|
59
|
-
// if exception appear 3 times, emit an exception event
|
|
60
|
-
startCheck() {
|
|
61
|
-
this.timer = setInterval(() => {
|
|
62
|
-
const count = this.count();
|
|
63
|
-
if (count.agent > 0 && count.worker > 0) {
|
|
64
|
-
this.exception = 0;
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
this.exception++;
|
|
68
|
-
if (this.exception >= 3) {
|
|
69
|
-
this.emit('exception', count);
|
|
70
|
-
clearInterval(this.timer);
|
|
71
|
-
}
|
|
72
|
-
}, 10000);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
exports.WorkerManager = WorkerManager;
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX21hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvd29ya2VyX21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTJDO0FBSTNDLGtFQUFrRTtBQUNsRSxzREFBc0Q7QUFDdEQsTUFBYSxhQUFjLFNBQVEsMEJBQVk7SUFDN0MsS0FBSyxDQUF5QjtJQUM5QixPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7SUFDM0MsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNkLEtBQUssQ0FBaUI7SUFFdEI7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQXNCO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFxQjtRQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBZ0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWdCO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7UUFDaEIsS0FBSyxNQUFNLENBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU07U0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsdURBQXVEO0lBQ3ZELFVBQVU7UUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLElBQUksS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7Z0JBQ25CLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzlCLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNaLENBQUM7Q0FDRjtBQWhGRCxzQ0FnRkMifQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/esm/agent_worker.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { debuglog } from 'node:util';
|
|
2
|
-
import { EggConsoleLogger as ConsoleLogger } from 'egg-logger';
|
|
3
|
-
import { importModule } from '@eggjs/utils';
|
|
4
|
-
import { AgentThreadWorker } from './utils/mode/impl/worker_threads/agent.js';
|
|
5
|
-
import { AgentProcessWorker } from './utils/mode/impl/process/agent.js';
|
|
6
|
-
const debug = debuglog('@eggjs/cluster/agent_worker');
|
|
7
|
-
/**
|
|
8
|
-
* agent worker is child_process forked by master.
|
|
9
|
-
*
|
|
10
|
-
* agent worker only exit in two cases:
|
|
11
|
-
* - receive signal SIGTERM, exit code 0 (exit gracefully)
|
|
12
|
-
* - receive disconnect event, exit code 110 (maybe master exit in accident)
|
|
13
|
-
*/
|
|
14
|
-
async function main() {
|
|
15
|
-
// $ node agent_worker.js options
|
|
16
|
-
const options = JSON.parse(process.argv[2]);
|
|
17
|
-
if (options.require) {
|
|
18
|
-
// inject
|
|
19
|
-
for (const mod of options.require) {
|
|
20
|
-
await importModule(mod, {
|
|
21
|
-
paths: [options.baseDir],
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
let AgentWorker;
|
|
26
|
-
if (options.startMode === 'worker_threads') {
|
|
27
|
-
AgentWorker = AgentThreadWorker;
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
AgentWorker = AgentProcessWorker;
|
|
31
|
-
}
|
|
32
|
-
const consoleLogger = new ConsoleLogger({ level: process.env.EGG_AGENT_WORKER_LOGGER_LEVEL });
|
|
33
|
-
const { Agent } = await importModule(options.framework, {
|
|
34
|
-
paths: [options.baseDir],
|
|
35
|
-
});
|
|
36
|
-
debug('new Agent with options %j', options);
|
|
37
|
-
let agent;
|
|
38
|
-
try {
|
|
39
|
-
agent = new Agent(options);
|
|
40
|
-
}
|
|
41
|
-
catch (err) {
|
|
42
|
-
consoleLogger.error(err);
|
|
43
|
-
throw err;
|
|
44
|
-
}
|
|
45
|
-
function startErrorHandler(err) {
|
|
46
|
-
consoleLogger.error(err);
|
|
47
|
-
consoleLogger.error('[agent_worker] start error, exiting with code:1');
|
|
48
|
-
AgentWorker.kill();
|
|
49
|
-
}
|
|
50
|
-
agent.ready((err) => {
|
|
51
|
-
// don't send started message to master when start error
|
|
52
|
-
if (err) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
agent.removeListener('error', startErrorHandler);
|
|
56
|
-
AgentWorker.send({ action: 'agent-start', to: 'master' });
|
|
57
|
-
});
|
|
58
|
-
// exit if agent start error
|
|
59
|
-
agent.once('error', startErrorHandler);
|
|
60
|
-
AgentWorker.gracefulExit({
|
|
61
|
-
logger: consoleLogger,
|
|
62
|
-
label: 'agent_worker',
|
|
63
|
-
beforeExit: () => agent.close(),
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
main();
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnRfd29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FnZW50X3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV4RSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUV0RDs7Ozs7O0dBTUc7QUFDSCxLQUFLLFVBQVUsSUFBSTtJQUNqQixpQ0FBaUM7SUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUt6QyxDQUFDO0lBQ0YsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsU0FBUztRQUNULEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xDLE1BQU0sWUFBWSxDQUFDLEdBQUcsRUFBRTtnQkFDdEIsS0FBSyxFQUFFLENBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBRTthQUMzQixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBbUMsQ0FBQztJQUN4QyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUMzQyxXQUFXLEdBQUcsaUJBQXdCLENBQUM7SUFDekMsQ0FBQztTQUFNLENBQUM7UUFDTixXQUFXLEdBQUcsa0JBQXlCLENBQUM7SUFDMUMsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1FBQ3RELEtBQUssRUFBRSxDQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUU7S0FDM0IsQ0FBQyxDQUFDO0lBQ0gsS0FBSyxDQUFDLDJCQUEyQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLElBQUksS0FBVSxDQUFDO0lBQ2YsSUFBSSxDQUFDO1FBQ0gsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixNQUFNLEdBQUcsQ0FBQztJQUNaLENBQUM7SUFFRCxTQUFTLGlCQUFpQixDQUFDLEdBQVU7UUFDbkMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixhQUFhLENBQUMsS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDdkUsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7UUFDMUIsd0RBQXdEO1FBQ3hELElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixPQUFPO1FBQ1QsQ0FBQztRQUVELEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDakQsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFDLENBQUM7SUFFSCw0QkFBNEI7SUFDNUIsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUV2QyxXQUFXLENBQUMsWUFBWSxDQUFDO1FBQ3ZCLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLEtBQUssRUFBRSxjQUFjO1FBQ3JCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO0tBQ2hDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyJ9
|
package/dist/esm/app_worker.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/esm/app_worker.js
DELETED
|
@@ -1,168 +0,0 @@
|
|
|
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 { AppThreadWorker } from './utils/mode/impl/worker_threads/app.js';
|
|
8
|
-
import { AppProcessWorker } from './utils/mode/impl/process/app.js';
|
|
9
|
-
const debug = debuglog('@eggjs/cluster/app_worker');
|
|
10
|
-
async function main() {
|
|
11
|
-
// $ node app_worker.js options-json-string
|
|
12
|
-
const options = JSON.parse(process.argv[2]);
|
|
13
|
-
if (options.require) {
|
|
14
|
-
// inject
|
|
15
|
-
for (const mod of options.require) {
|
|
16
|
-
await importModule(mod, {
|
|
17
|
-
paths: [options.baseDir],
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
let AppWorker;
|
|
22
|
-
if (options.startMode === 'worker_threads') {
|
|
23
|
-
AppWorker = AppThreadWorker;
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
AppWorker = AppProcessWorker;
|
|
27
|
-
}
|
|
28
|
-
const consoleLogger = new ConsoleLogger({
|
|
29
|
-
level: process.env.EGG_APP_WORKER_LOGGER_LEVEL,
|
|
30
|
-
});
|
|
31
|
-
const { Application } = await importModule(options.framework, {
|
|
32
|
-
paths: [options.baseDir],
|
|
33
|
-
});
|
|
34
|
-
debug('[app_worker:%s] new Application with options %j', process.pid, options);
|
|
35
|
-
let app;
|
|
36
|
-
try {
|
|
37
|
-
app = new Application(options);
|
|
38
|
-
}
|
|
39
|
-
catch (err) {
|
|
40
|
-
consoleLogger.error(err);
|
|
41
|
-
throw err;
|
|
42
|
-
}
|
|
43
|
-
app.ready(startServer);
|
|
44
|
-
function exitProcess() {
|
|
45
|
-
// Use SIGTERM kill process, ensure trigger the gracefulExit
|
|
46
|
-
AppWorker.kill();
|
|
47
|
-
}
|
|
48
|
-
// exit if worker start timeout
|
|
49
|
-
app.once('startTimeout', startTimeoutHandler);
|
|
50
|
-
function startTimeoutHandler() {
|
|
51
|
-
consoleLogger.error('[app_worker] start timeout, exiting with code:1');
|
|
52
|
-
exitProcess();
|
|
53
|
-
}
|
|
54
|
-
function startServer(err) {
|
|
55
|
-
if (err) {
|
|
56
|
-
consoleLogger.error(err);
|
|
57
|
-
consoleLogger.error('[app_worker] start error, exiting with code:1');
|
|
58
|
-
exitProcess();
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
const clusterConfig = app.config.cluster ?? {};
|
|
62
|
-
const listenConfig = clusterConfig.listen ?? {};
|
|
63
|
-
const httpsOptions = {
|
|
64
|
-
...clusterConfig.https,
|
|
65
|
-
...options.https,
|
|
66
|
-
};
|
|
67
|
-
const port = app.options.port = options.port || listenConfig.port;
|
|
68
|
-
const debugPort = options.debugPort;
|
|
69
|
-
const protocol = (httpsOptions.key && httpsOptions.cert) ? 'https' : 'http';
|
|
70
|
-
debug('[app_worker:%s] listenConfig: %j, real port: %o, protocol: %o, debugPort: %o', process.pid, listenConfig, port, protocol, debugPort);
|
|
71
|
-
AppWorker.send({
|
|
72
|
-
to: 'master',
|
|
73
|
-
action: 'realport',
|
|
74
|
-
data: {
|
|
75
|
-
port,
|
|
76
|
-
protocol,
|
|
77
|
-
},
|
|
78
|
-
});
|
|
79
|
-
app.removeListener('startTimeout', startTimeoutHandler);
|
|
80
|
-
let server;
|
|
81
|
-
let debugPortServer;
|
|
82
|
-
// https config
|
|
83
|
-
if (protocol === 'https') {
|
|
84
|
-
httpsOptions.key = fs.readFileSync(httpsOptions.key);
|
|
85
|
-
httpsOptions.cert = fs.readFileSync(httpsOptions.cert);
|
|
86
|
-
httpsOptions.ca = httpsOptions.ca && fs.readFileSync(httpsOptions.ca);
|
|
87
|
-
server = createHttpsServer(httpsOptions, app.callback());
|
|
88
|
-
if (debugPort) {
|
|
89
|
-
debugPortServer = createHttpServer(app.callback());
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
server = createHttpServer(app.callback());
|
|
94
|
-
if (debugPort) {
|
|
95
|
-
debugPortServer = server;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
server.once('error', (err) => {
|
|
99
|
-
consoleLogger.error('[app_worker] server got error: %s, code: %s', err.message, err.code);
|
|
100
|
-
exitProcess();
|
|
101
|
-
});
|
|
102
|
-
// emit `server` event in app
|
|
103
|
-
app.emit('server', server);
|
|
104
|
-
if (options.sticky && options.stickyWorkerPort) {
|
|
105
|
-
// only allow connection from localhost
|
|
106
|
-
server.listen(options.stickyWorkerPort, '127.0.0.1');
|
|
107
|
-
// Listen to messages was sent from the master. Ignore everything else.
|
|
108
|
-
AppWorker.on('message', (message, connection) => {
|
|
109
|
-
if (message !== 'sticky-session:connection') {
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
// Emulate a connection event on the server by emitting the
|
|
113
|
-
// event with the connection the master sent us.
|
|
114
|
-
server.emit('connection', connection);
|
|
115
|
-
connection.resume();
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
if (listenConfig.path) {
|
|
120
|
-
server.listen(listenConfig.path);
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
if (typeof port !== 'number') {
|
|
124
|
-
consoleLogger.error('[app_worker:%s] port should be number, but got %s(%s)', process.pid, port, typeof port);
|
|
125
|
-
exitProcess();
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
const args = [port];
|
|
129
|
-
if (listenConfig.hostname) {
|
|
130
|
-
args.push(listenConfig.hostname);
|
|
131
|
-
}
|
|
132
|
-
debug('listen options %j', args);
|
|
133
|
-
server.listen(...args);
|
|
134
|
-
}
|
|
135
|
-
if (debugPortServer) {
|
|
136
|
-
debug('listen on debug port: %s', debugPort);
|
|
137
|
-
debugPortServer.listen(debugPort);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
server.once('listening', () => {
|
|
141
|
-
let address = server.address() || { port };
|
|
142
|
-
if (typeof address === 'string') {
|
|
143
|
-
// https://nodejs.org/api/cluster.html#cluster_event_listening_1
|
|
144
|
-
// Unix domain socket
|
|
145
|
-
address = {
|
|
146
|
-
address,
|
|
147
|
-
addressType: -1,
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
debug('[app_worker:%s] listening at %j', process.pid, address);
|
|
151
|
-
AppWorker.send({
|
|
152
|
-
to: 'master',
|
|
153
|
-
action: 'app-start',
|
|
154
|
-
data: {
|
|
155
|
-
address,
|
|
156
|
-
workerId: AppWorker.workerId,
|
|
157
|
-
},
|
|
158
|
-
});
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
AppWorker.gracefulExit({
|
|
162
|
-
logger: consoleLogger,
|
|
163
|
-
label: 'app_worker',
|
|
164
|
-
beforeExit: () => app.close(),
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
main();
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwX3dvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcHBfd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLEVBQUUsWUFBWSxJQUFJLGdCQUFnQixFQUFlLE1BQU0sV0FBVyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLElBQUksaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLElBQUksYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBRXBELEtBQUssVUFBVSxJQUFJO0lBQ2pCLDJDQUEyQztJQUMzQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBVXpDLENBQUM7SUFDRixJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixTQUFTO1FBQ1QsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEMsTUFBTSxZQUFZLENBQUMsR0FBRyxFQUFFO2dCQUN0QixLQUFLLEVBQUUsQ0FBRSxPQUFPLENBQUMsT0FBTyxDQUFFO2FBQzNCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxTQUErQixDQUFDO0lBQ3BDLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxnQkFBZ0Is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
|
package/dist/esm/dirname.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function getSrcDirname(): string;
|
package/dist/esm/dirname.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlybmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaXJuYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBRTdCLE1BQU0sVUFBVSxhQUFhO0lBQzNCLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDckMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELDZEQUE2RDtJQUM3RCxhQUFhO0lBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQyJ9
|
|
@@ -1,19 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2x1c3RlckFnZW50V29ya2VyRXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXJyb3IvQ2x1c3RlckFnZW50V29ya2VyRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHVCQUF3QixTQUFRLEtBQUs7SUFDaEQsRUFBRSxDQUFTO0lBQ1g7OztPQUdHO0lBQ0gsUUFBUSxDQUFTO0lBQ2pCLE1BQU0sQ0FBUztJQUVmLFlBQVksRUFBVSxFQUFFLFFBQWdCLEVBQUUsTUFBYyxFQUFFLEtBQVk7UUFDcEUsTUFBTSxPQUFPLEdBQUcsMkJBQTJCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMzRCxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRiJ9
|
|
@@ -1,14 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2x1c3RlcldvcmtlckV4Y2VwdGlvbkVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Vycm9yL0NsdXN0ZXJXb3JrZXJFeGNlcHRpb25FcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsS0FBSztJQUNwRCxLQUFLLENBR0g7SUFFRixZQUFZLEtBQWEsRUFBRSxNQUFjO1FBQ3ZDLE1BQU0sT0FBTyxHQUFHLFlBQVksS0FBSyxjQUFjLE1BQU0sK0NBQStDLENBQUM7UUFDckcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsS0FBSztZQUNMLE1BQU07U0FDUCxDQUFDO1FBQ0YsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGIn0=
|
package/dist/esm/error/index.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './ClusterAgentWorkerError.js';
|
|
2
|
-
export * from './ClusterWorkerExceptionError.js';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXJyb3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGtDQUFrQyxDQUFDIn0=
|
package/dist/esm/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/esm/index.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Master } from './master.js';
|
|
2
|
-
/**
|
|
3
|
-
* cluster start flow:
|
|
4
|
-
*
|
|
5
|
-
* [startCluster] -> master -> agent_worker -> new [Agent] -> agentWorkerLoader
|
|
6
|
-
* `-> app_worker -> new [Application] -> appWorkerLoader
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* start egg app
|
|
11
|
-
* @function Egg#startCluster
|
|
12
|
-
* @param {Object} options {@link Master}
|
|
13
|
-
*/
|
|
14
|
-
export async function startCluster(options) {
|
|
15
|
-
await new Master(options).ready();
|
|
16
|
-
}
|
|
17
|
-
export { Master, };
|
|
18
|
-
export * from './error/index.js';
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxhQUFhLENBQUM7QUFHcEQ7Ozs7OztHQU1HO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsWUFBWSxDQUFDLE9BQXVCO0lBQ3hELE1BQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDcEMsQ0FBQztBQUVELE9BQU8sRUFDTCxNQUFNLEdBRVAsQ0FBQztBQUVGLGNBQWMsa0JBQWtCLENBQUMifQ==
|