UNPKG

16.1 kBTypeScriptView Raw
1declare module 'cluster' {
2 import * as child from 'child_process';
3 import EventEmitter = require('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 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 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?: NodeJS.Dict<Worker>;
104
105 readonly SCHED_NONE: number;
106 readonly SCHED_RR: number;
107
108 /**
109 * events.EventEmitter
110 * 1. disconnect
111 * 2. exit
112 * 3. fork
113 * 4. listening
114 * 5. message
115 * 6. online
116 * 7. setup
117 */
118 addListener(event: string, listener: (...args: any[]) => void): this;
119 addListener(event: "disconnect", listener: (worker: Worker) => void): this;
120 addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
121 addListener(event: "fork", listener: (worker: Worker) => void): this;
122 addListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
123 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.
124 addListener(event: "online", listener: (worker: Worker) => void): this;
125 addListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
126
127 emit(event: string | symbol, ...args: any[]): boolean;
128 emit(event: "disconnect", worker: Worker): boolean;
129 emit(event: "exit", worker: Worker, code: number, signal: string): boolean;
130 emit(event: "fork", worker: Worker): boolean;
131 emit(event: "listening", worker: Worker, address: Address): boolean;
132 emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean;
133 emit(event: "online", worker: Worker): boolean;
134 emit(event: "setup", settings: ClusterSettings): boolean;
135
136 on(event: string, listener: (...args: any[]) => void): this;
137 on(event: "disconnect", listener: (worker: Worker) => void): this;
138 on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
139 on(event: "fork", listener: (worker: Worker) => void): this;
140 on(event: "listening", listener: (worker: Worker, address: Address) => void): this;
141 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.
142 on(event: "online", listener: (worker: Worker) => void): this;
143 on(event: "setup", listener: (settings: ClusterSettings) => void): this;
144
145 once(event: string, listener: (...args: any[]) => void): this;
146 once(event: "disconnect", listener: (worker: Worker) => void): this;
147 once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
148 once(event: "fork", listener: (worker: Worker) => void): this;
149 once(event: "listening", listener: (worker: Worker, address: Address) => void): this;
150 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.
151 once(event: "online", listener: (worker: Worker) => void): this;
152 once(event: "setup", listener: (settings: ClusterSettings) => void): this;
153
154 prependListener(event: string, listener: (...args: any[]) => void): this;
155 prependListener(event: "disconnect", listener: (worker: Worker) => void): this;
156 prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
157 prependListener(event: "fork", listener: (worker: Worker) => void): this;
158 prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
159 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.
160 prependListener(event: "online", listener: (worker: Worker) => void): this;
161 prependListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
162
163 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
164 prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): this;
165 prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
166 prependOnceListener(event: "fork", listener: (worker: Worker) => void): this;
167 prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
168 // the handle is a net.Socket or net.Server object, or undefined.
169 prependOnceListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this;
170 prependOnceListener(event: "online", listener: (worker: Worker) => void): this;
171 prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
172 }
173
174 const SCHED_NONE: number;
175 const SCHED_RR: number;
176
177 function disconnect(callback?: () => void): void;
178 function fork(env?: any): Worker;
179 const isMaster: boolean;
180 const isWorker: boolean;
181 let schedulingPolicy: number;
182 const settings: ClusterSettings;
183 function setupMaster(settings?: ClusterSettings): void;
184 const worker: Worker;
185 const workers: NodeJS.Dict<Worker>;
186
187 /**
188 * events.EventEmitter
189 * 1. disconnect
190 * 2. exit
191 * 3. fork
192 * 4. listening
193 * 5. message
194 * 6. online
195 * 7. setup
196 */
197 function addListener(event: string, listener: (...args: any[]) => void): Cluster;
198 function addListener(event: "disconnect", listener: (worker: Worker) => void): Cluster;
199 function addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
200 function addListener(event: "fork", listener: (worker: Worker) => void): Cluster;
201 function addListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
202 // the handle is a net.Socket or net.Server object, or undefined.
203 function addListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster;
204 function addListener(event: "online", listener: (worker: Worker) => void): Cluster;
205 function addListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
206
207 function emit(event: string | symbol, ...args: any[]): boolean;
208 function emit(event: "disconnect", worker: Worker): boolean;
209 function emit(event: "exit", worker: Worker, code: number, signal: string): boolean;
210 function emit(event: "fork", worker: Worker): boolean;
211 function emit(event: "listening", worker: Worker, address: Address): boolean;
212 function emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean;
213 function emit(event: "online", worker: Worker): boolean;
214 function emit(event: "setup", settings: ClusterSettings): boolean;
215
216 function on(event: string, listener: (...args: any[]) => void): Cluster;
217 function on(event: "disconnect", listener: (worker: Worker) => void): Cluster;
218 function on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
219 function on(event: "fork", listener: (worker: Worker) => void): Cluster;
220 function on(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
221 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.
222 function on(event: "online", listener: (worker: Worker) => void): Cluster;
223 function on(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
224
225 function once(event: string, listener: (...args: any[]) => void): Cluster;
226 function once(event: "disconnect", listener: (worker: Worker) => void): Cluster;
227 function once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
228 function once(event: "fork", listener: (worker: Worker) => void): Cluster;
229 function once(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
230 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.
231 function once(event: "online", listener: (worker: Worker) => void): Cluster;
232 function once(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
233
234 function removeListener(event: string, listener: (...args: any[]) => void): Cluster;
235 function removeAllListeners(event?: string): Cluster;
236 function setMaxListeners(n: number): Cluster;
237 function getMaxListeners(): number;
238 function listeners(event: string): Function[];
239 function listenerCount(type: string): number;
240
241 function prependListener(event: string, listener: (...args: any[]) => void): Cluster;
242 function prependListener(event: "disconnect", listener: (worker: Worker) => void): Cluster;
243 function prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
244 function prependListener(event: "fork", listener: (worker: Worker) => void): Cluster;
245 function prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
246 // the handle is a net.Socket or net.Server object, or undefined.
247 function prependListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster;
248 function prependListener(event: "online", listener: (worker: Worker) => void): Cluster;
249 function prependListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
250
251 function prependOnceListener(event: string, listener: (...args: any[]) => void): Cluster;
252 function prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): Cluster;
253 function prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
254 function prependOnceListener(event: "fork", listener: (worker: Worker) => void): Cluster;
255 function prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
256 // the handle is a net.Socket or net.Server object, or undefined.
257 function prependOnceListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster;
258 function prependOnceListener(event: "online", listener: (worker: Worker) => void): Cluster;
259 function prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
260
261 function eventNames(): string[];
262}
263
\No newline at end of file