UNPKG

16.2 kBTypeScriptView Raw
1declare module "cluster" {
2 import * as child from "child_process";
3 import * as events from "events";
4 import * as net from "net";
5
6 // interfaces
7 interface ClusterSettings {
8 execArgv?: string[]; // default: process.execArgv
9 exec?: string;
10 args?: string[];
11 silent?: boolean;
12 stdio?: any[];
13 uid?: number;
14 gid?: number;
15 inspectPort?: number | (() => number);
16 }
17
18 interface Address {
19 address: string;
20 port: number;
21 addressType: number | "udp4" | "udp6"; // 4, 6, -1, "udp4", "udp6"
22 }
23
24 class Worker extends events.EventEmitter {
25 id: number;
26 process: child.ChildProcess;
27 send(message: child.Serializable, sendHandle?: child.SendHandle, callback?: (error: Error | null) => void): boolean;
28 kill(signal?: string): void;
29 destroy(signal?: string): void;
30 disconnect(): void;
31 isConnected(): boolean;
32 isDead(): boolean;
33 exitedAfterDisconnect: boolean;
34
35 /**
36 * events.EventEmitter
37 * 1. disconnect
38 * 2. error
39 * 3. exit
40 * 4. listening
41 * 5. message
42 * 6. online
43 */
44 addListener(event: string, listener: (...args: any[]) => void): this;
45 addListener(event: "disconnect", listener: () => void): this;
46 addListener(event: "error", listener: (error: Error) => void): this;
47 addListener(event: "exit", listener: (code: number, signal: string) => void): this;
48 addListener(event: "listening", listener: (address: Address) => void): this;
49 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.
50 addListener(event: "online", listener: () => void): this;
51
52 emit(event: string | symbol, ...args: any[]): boolean;
53 emit(event: "disconnect"): boolean;
54 emit(event: "error", error: Error): boolean;
55 emit(event: "exit", code: number, signal: string): boolean;
56 emit(event: "listening", address: Address): boolean;
57 emit(event: "message", message: any, handle: net.Socket | net.Server): boolean;
58 emit(event: "online"): boolean;
59
60 on(event: string, listener: (...args: any[]) => void): this;
61 on(event: "disconnect", listener: () => void): this;
62 on(event: "error", listener: (error: Error) => void): this;
63 on(event: "exit", listener: (code: number, signal: string) => void): this;
64 on(event: "listening", listener: (address: Address) => void): this;
65 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.
66 on(event: "online", listener: () => void): this;
67
68 once(event: string, listener: (...args: any[]) => void): this;
69 once(event: "disconnect", listener: () => void): this;
70 once(event: "error", listener: (error: Error) => void): this;
71 once(event: "exit", listener: (code: number, signal: string) => void): this;
72 once(event: "listening", listener: (address: Address) => void): this;
73 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.
74 once(event: "online", listener: () => void): this;
75
76 prependListener(event: string, listener: (...args: any[]) => void): this;
77 prependListener(event: "disconnect", listener: () => void): this;
78 prependListener(event: "error", listener: (error: Error) => void): this;
79 prependListener(event: "exit", listener: (code: number, signal: string) => void): this;
80 prependListener(event: "listening", listener: (address: Address) => void): this;
81 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.
82 prependListener(event: "online", listener: () => void): this;
83
84 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
85 prependOnceListener(event: "disconnect", listener: () => void): this;
86 prependOnceListener(event: "error", listener: (error: Error) => void): this;
87 prependOnceListener(event: "exit", listener: (code: number, signal: string) => void): this;
88 prependOnceListener(event: "listening", listener: (address: Address) => void): this;
89 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.
90 prependOnceListener(event: "online", listener: () => void): this;
91 }
92
93 interface Cluster extends events.EventEmitter {
94 Worker: Worker;
95 disconnect(callback?: () => void): void;
96 fork(env?: any): Worker;
97 isMaster: boolean;
98 isWorker: boolean;
99 schedulingPolicy: number;
100 settings: ClusterSettings;
101 setupMaster(settings?: ClusterSettings): void;
102 worker?: Worker;
103 workers?: {
104 [index: string]: Worker | undefined
105 };
106
107 readonly SCHED_NONE: number;
108 readonly SCHED_RR: number;
109
110 /**
111 * events.EventEmitter
112 * 1. disconnect
113 * 2. exit
114 * 3. fork
115 * 4. listening
116 * 5. message
117 * 6. online
118 * 7. setup
119 */
120 addListener(event: string, listener: (...args: any[]) => void): this;
121 addListener(event: "disconnect", listener: (worker: Worker) => void): this;
122 addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
123 addListener(event: "fork", listener: (worker: Worker) => void): this;
124 addListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
125 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.
126 addListener(event: "online", listener: (worker: Worker) => void): this;
127 addListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
128
129 emit(event: string | symbol, ...args: any[]): boolean;
130 emit(event: "disconnect", worker: Worker): boolean;
131 emit(event: "exit", worker: Worker, code: number, signal: string): boolean;
132 emit(event: "fork", worker: Worker): boolean;
133 emit(event: "listening", worker: Worker, address: Address): boolean;
134 emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean;
135 emit(event: "online", worker: Worker): boolean;
136 emit(event: "setup", settings: ClusterSettings): boolean;
137
138 on(event: string, listener: (...args: any[]) => void): this;
139 on(event: "disconnect", listener: (worker: Worker) => void): this;
140 on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
141 on(event: "fork", listener: (worker: Worker) => void): this;
142 on(event: "listening", listener: (worker: Worker, address: Address) => void): this;
143 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.
144 on(event: "online", listener: (worker: Worker) => void): this;
145 on(event: "setup", listener: (settings: ClusterSettings) => void): this;
146
147 once(event: string, listener: (...args: any[]) => void): this;
148 once(event: "disconnect", listener: (worker: Worker) => void): this;
149 once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
150 once(event: "fork", listener: (worker: Worker) => void): this;
151 once(event: "listening", listener: (worker: Worker, address: Address) => void): this;
152 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.
153 once(event: "online", listener: (worker: Worker) => void): this;
154 once(event: "setup", listener: (settings: ClusterSettings) => void): this;
155
156 prependListener(event: string, listener: (...args: any[]) => void): this;
157 prependListener(event: "disconnect", listener: (worker: Worker) => void): this;
158 prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
159 prependListener(event: "fork", listener: (worker: Worker) => void): this;
160 prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
161 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.
162 prependListener(event: "online", listener: (worker: Worker) => void): this;
163 prependListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
164
165 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
166 prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): this;
167 prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
168 prependOnceListener(event: "fork", listener: (worker: Worker) => void): this;
169 prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
170 // the handle is a net.Socket or net.Server object, or undefined.
171 prependOnceListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this;
172 prependOnceListener(event: "online", listener: (worker: Worker) => void): this;
173 prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
174 }
175
176 const SCHED_NONE: number;
177 const SCHED_RR: number;
178
179 function disconnect(callback?: () => void): void;
180 function fork(env?: any): Worker;
181 const isMaster: boolean;
182 const isWorker: boolean;
183 let schedulingPolicy: number;
184 const settings: ClusterSettings;
185 function setupMaster(settings?: ClusterSettings): void;
186 const worker: Worker;
187 const workers: {
188 [index: string]: Worker | undefined
189 };
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