UNPKG

16.2 kBTypeScriptView Raw
1declare module 'node:cluster' {
2 export * from 'cluster';
3}
4
5declare module 'cluster' {
6 import * as child from 'node:child_process';
7 import EventEmitter = require('node:events');
8 import * as net from 'node:net';
9
10 // interfaces
11 interface ClusterSettings {
12 execArgv?: string[]; // default: process.execArgv
13 exec?: string;
14 args?: string[];
15 silent?: boolean;
16 stdio?: any[];
17 uid?: number;
18 gid?: number;
19 inspectPort?: number | (() => number);
20 }
21
22 interface Address {
23 address: string;
24 port: number;
25 addressType: number | "udp4" | "udp6"; // 4, 6, -1, "udp4", "udp6"
26 }
27
28 class Worker extends EventEmitter {
29 id: number;
30 process: child.ChildProcess;
31 send(message: child.Serializable, sendHandle?: child.SendHandle, callback?: (error: Error | null) => void): boolean;
32 kill(signal?: string): void;
33 destroy(signal?: string): void;
34 disconnect(): void;
35 isConnected(): boolean;
36 isDead(): boolean;
37 exitedAfterDisconnect: boolean;
38
39 /**
40 * events.EventEmitter
41 * 1. disconnect
42 * 2. error
43 * 3. exit
44 * 4. listening
45 * 5. message
46 * 6. online
47 */
48 addListener(event: string, listener: (...args: any[]) => void): this;
49 addListener(event: "disconnect", listener: () => void): this;
50 addListener(event: "error", listener: (error: Error) => void): this;
51 addListener(event: "exit", listener: (code: number, signal: string) => void): this;
52 addListener(event: "listening", listener: (address: Address) => void): this;
53 addListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
54 addListener(event: "online", listener: () => void): this;
55
56 emit(event: string | symbol, ...args: any[]): boolean;
57 emit(event: "disconnect"): boolean;
58 emit(event: "error", error: Error): boolean;
59 emit(event: "exit", code: number, signal: string): boolean;
60 emit(event: "listening", address: Address): boolean;
61 emit(event: "message", message: any, handle: net.Socket | net.Server): boolean;
62 emit(event: "online"): boolean;
63
64 on(event: string, listener: (...args: any[]) => void): this;
65 on(event: "disconnect", listener: () => void): this;
66 on(event: "error", listener: (error: Error) => void): this;
67 on(event: "exit", listener: (code: number, signal: string) => void): this;
68 on(event: "listening", listener: (address: Address) => void): this;
69 on(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
70 on(event: "online", listener: () => void): this;
71
72 once(event: string, listener: (...args: any[]) => void): this;
73 once(event: "disconnect", listener: () => void): this;
74 once(event: "error", listener: (error: Error) => void): this;
75 once(event: "exit", listener: (code: number, signal: string) => void): this;
76 once(event: "listening", listener: (address: Address) => void): this;
77 once(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
78 once(event: "online", listener: () => void): this;
79
80 prependListener(event: string, listener: (...args: any[]) => void): this;
81 prependListener(event: "disconnect", listener: () => void): this;
82 prependListener(event: "error", listener: (error: Error) => void): this;
83 prependListener(event: "exit", listener: (code: number, signal: string) => void): this;
84 prependListener(event: "listening", listener: (address: Address) => void): this;
85 prependListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
86 prependListener(event: "online", listener: () => void): this;
87
88 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
89 prependOnceListener(event: "disconnect", listener: () => void): this;
90 prependOnceListener(event: "error", listener: (error: Error) => void): this;
91 prependOnceListener(event: "exit", listener: (code: number, signal: string) => void): this;
92 prependOnceListener(event: "listening", listener: (address: Address) => void): this;
93 prependOnceListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
94 prependOnceListener(event: "online", listener: () => void): this;
95 }
96
97 interface Cluster extends EventEmitter {
98 Worker: Worker;
99 disconnect(callback?: () => void): void;
100 fork(env?: any): Worker;
101 isMaster: boolean;
102 isWorker: boolean;
103 schedulingPolicy: number;
104 settings: ClusterSettings;
105 setupMaster(settings?: ClusterSettings): void;
106 worker?: Worker;
107 workers?: NodeJS.Dict<Worker>;
108
109 readonly SCHED_NONE: number;
110 readonly SCHED_RR: number;
111
112 /**
113 * events.EventEmitter
114 * 1. disconnect
115 * 2. exit
116 * 3. fork
117 * 4. listening
118 * 5. message
119 * 6. online
120 * 7. setup
121 */
122 addListener(event: string, listener: (...args: any[]) => void): this;
123 addListener(event: "disconnect", listener: (worker: Worker) => void): this;
124 addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
125 addListener(event: "fork", listener: (worker: Worker) => void): this;
126 addListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
127 addListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
128 addListener(event: "online", listener: (worker: Worker) => void): this;
129 addListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
130
131 emit(event: string | symbol, ...args: any[]): boolean;
132 emit(event: "disconnect", worker: Worker): boolean;
133 emit(event: "exit", worker: Worker, code: number, signal: string): boolean;
134 emit(event: "fork", worker: Worker): boolean;
135 emit(event: "listening", worker: Worker, address: Address): boolean;
136 emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean;
137 emit(event: "online", worker: Worker): boolean;
138 emit(event: "setup", settings: ClusterSettings): boolean;
139
140 on(event: string, listener: (...args: any[]) => void): this;
141 on(event: "disconnect", listener: (worker: Worker) => void): this;
142 on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
143 on(event: "fork", listener: (worker: Worker) => void): this;
144 on(event: "listening", listener: (worker: Worker, address: Address) => void): this;
145 on(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
146 on(event: "online", listener: (worker: Worker) => void): this;
147 on(event: "setup", listener: (settings: ClusterSettings) => void): this;
148
149 once(event: string, listener: (...args: any[]) => void): this;
150 once(event: "disconnect", listener: (worker: Worker) => void): this;
151 once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
152 once(event: "fork", listener: (worker: Worker) => void): this;
153 once(event: "listening", listener: (worker: Worker, address: Address) => void): this;
154 once(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
155 once(event: "online", listener: (worker: Worker) => void): this;
156 once(event: "setup", listener: (settings: ClusterSettings) => void): this;
157
158 prependListener(event: string, listener: (...args: any[]) => void): this;
159 prependListener(event: "disconnect", listener: (worker: Worker) => void): this;
160 prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
161 prependListener(event: "fork", listener: (worker: Worker) => void): this;
162 prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
163 prependListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
164 prependListener(event: "online", listener: (worker: Worker) => void): this;
165 prependListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
166
167 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
168 prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): this;
169 prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
170 prependOnceListener(event: "fork", listener: (worker: Worker) => void): this;
171 prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
172 // the handle is a net.Socket or net.Server object, or undefined.
173 prependOnceListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this;
174 prependOnceListener(event: "online", listener: (worker: Worker) => void): this;
175 prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
176 }
177
178 const SCHED_NONE: number;
179 const SCHED_RR: number;
180
181 function disconnect(callback?: () => void): void;
182 function fork(env?: any): Worker;
183 const isMaster: boolean;
184 const isWorker: boolean;
185 let schedulingPolicy: number;
186 const settings: ClusterSettings;
187 function setupMaster(settings?: ClusterSettings): void;
188 const worker: Worker;
189 const workers: NodeJS.Dict<Worker>;
190
191 /**
192 * events.EventEmitter
193 * 1. disconnect
194 * 2. exit
195 * 3. fork
196 * 4. listening
197 * 5. message
198 * 6. online
199 * 7. setup
200 */
201 function addListener(event: string, listener: (...args: any[]) => void): Cluster;
202 function addListener(event: "disconnect", listener: (worker: Worker) => void): Cluster;
203 function addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
204 function addListener(event: "fork", listener: (worker: Worker) => void): Cluster;
205 function addListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
206 // the handle is a net.Socket or net.Server object, or undefined.
207 function addListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster;
208 function addListener(event: "online", listener: (worker: Worker) => void): Cluster;
209 function addListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
210
211 function emit(event: string | symbol, ...args: any[]): boolean;
212 function emit(event: "disconnect", worker: Worker): boolean;
213 function emit(event: "exit", worker: Worker, code: number, signal: string): boolean;
214 function emit(event: "fork", worker: Worker): boolean;
215 function emit(event: "listening", worker: Worker, address: Address): boolean;
216 function emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean;
217 function emit(event: "online", worker: Worker): boolean;
218 function emit(event: "setup", settings: ClusterSettings): boolean;
219
220 function on(event: string, listener: (...args: any[]) => void): Cluster;
221 function on(event: "disconnect", listener: (worker: Worker) => void): Cluster;
222 function on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
223 function on(event: "fork", listener: (worker: Worker) => void): Cluster;
224 function on(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
225 function on(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; // the handle is a net.Socket or net.Server object, or undefined.
226 function on(event: "online", listener: (worker: Worker) => void): Cluster;
227 function on(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
228
229 function once(event: string, listener: (...args: any[]) => void): Cluster;
230 function once(event: "disconnect", listener: (worker: Worker) => void): Cluster;
231 function once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
232 function once(event: "fork", listener: (worker: Worker) => void): Cluster;
233 function once(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
234 function once(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; // the handle is a net.Socket or net.Server object, or undefined.
235 function once(event: "online", listener: (worker: Worker) => void): Cluster;
236 function once(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
237
238 function removeListener(event: string, listener: (...args: any[]) => void): Cluster;
239 function removeAllListeners(event?: string): Cluster;
240 function setMaxListeners(n: number): Cluster;
241 function getMaxListeners(): number;
242 function listeners(event: string): Function[];
243 function listenerCount(type: string): number;
244
245 function prependListener(event: string, listener: (...args: any[]) => void): Cluster;
246 function prependListener(event: "disconnect", listener: (worker: Worker) => void): Cluster;
247 function prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
248 function prependListener(event: "fork", listener: (worker: Worker) => void): Cluster;
249 function prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
250 // the handle is a net.Socket or net.Server object, or undefined.
251 function prependListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster;
252 function prependListener(event: "online", listener: (worker: Worker) => void): Cluster;
253 function prependListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
254
255 function prependOnceListener(event: string, listener: (...args: any[]) => void): Cluster;
256 function prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): Cluster;
257 function prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
258 function prependOnceListener(event: "fork", listener: (worker: Worker) => void): Cluster;
259 function prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
260 // the handle is a net.Socket or net.Server object, or undefined.
261 function prependOnceListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster;
262 function prependOnceListener(event: "online", listener: (worker: Worker) => void): Cluster;
263 function prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
264
265 function eventNames(): string[];
266}
267
\No newline at end of file