Skip to content

Commit 9044423

Browse files
vsemozhetbytevanlucas
authored andcommitted
doc: modernize code examples in the cluster.md
- Fixes #10255 - It also will be consistent with a previous code example. - `cluster.workers` iteration: `Object.keys().forEach` -> `for`...`in` PR-URL: #10270 Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Sam Roberts <[email protected]>
1 parent a5a738c commit 9044423

File tree

1 file changed

+25
-20
lines changed

1 file changed

+25
-20
lines changed

doc/api/cluster.md

+25-20
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ const http = require('http');
1515
const numCPUs = require('os').cpus().length;
1616

1717
if (cluster.isMaster) {
18+
console.log(`Master ${process.pid} is running`);
19+
1820
// Fork workers.
19-
for (var i = 0; i < numCPUs; i++) {
21+
for (let i = 0; i < numCPUs; i++) {
2022
cluster.fork();
2123
}
2224

@@ -30,17 +32,20 @@ if (cluster.isMaster) {
3032
res.writeHead(200);
3133
res.end('hello world\n');
3234
}).listen(8000);
35+
36+
console.log(`Worker ${process.pid} started`);
3337
}
3438
```
3539

3640
Running Node.js will now share port 8000 between the workers:
3741

3842
```txt
39-
$ NODE_DEBUG=cluster node server.js
40-
23521,Master Worker 23524 online
41-
23521,Master Worker 23526 online
42-
23521,Master Worker 23523 online
43-
23521,Master Worker 23528 online
43+
$ node server.js
44+
Master 3596 is running
45+
Worker 4324 started
46+
Worker 4520 started
47+
Worker 6056 started
48+
Worker 5644 started
4449
```
4550

4651
Please note that on Windows, it is not yet possible to set up a named pipe
@@ -202,27 +207,27 @@ const http = require('http');
202207
if (cluster.isMaster) {
203208

204209
// Keep track of http requests
205-
var numReqs = 0;
210+
let numReqs = 0;
206211
setInterval(() => {
207-
console.log('numReqs =', numReqs);
212+
console.log(`numReqs = ${numReqs}`);
208213
}, 1000);
209214

210215
// Count requests
211216
function messageHandler(msg) {
212-
if (msg.cmd && msg.cmd == 'notifyRequest') {
217+
if (msg.cmd && msg.cmd === 'notifyRequest') {
213218
numReqs += 1;
214219
}
215220
}
216221

217222
// Start workers and listen for messages containing notifyRequest
218223
const numCPUs = require('os').cpus().length;
219-
for (var i = 0; i < numCPUs; i++) {
224+
for (let i = 0; i < numCPUs; i++) {
220225
cluster.fork();
221226
}
222227

223-
Object.keys(cluster.workers).forEach((id) => {
228+
for (const id in cluster.workers) {
224229
cluster.workers[id].on('message', messageHandler);
225-
});
230+
}
226231

227232
} else {
228233

@@ -287,8 +292,8 @@ the `'disconnect'` event has not been emitted after some time.
287292

288293
```js
289294
if (cluster.isMaster) {
290-
var worker = cluster.fork();
291-
var timeout;
295+
const worker = cluster.fork();
296+
let timeout;
292297

293298
worker.on('listening', (address) => {
294299
worker.send('shutdown');
@@ -304,7 +309,7 @@ if (cluster.isMaster) {
304309

305310
} else if (cluster.isWorker) {
306311
const net = require('net');
307-
var server = net.createServer((socket) => {
312+
const server = net.createServer((socket) => {
308313
// connections never end
309314
});
310315

@@ -430,7 +435,7 @@ This example will echo back all messages from the master:
430435

431436
```js
432437
if (cluster.isMaster) {
433-
var worker = cluster.fork();
438+
const worker = cluster.fork();
434439
worker.send('hi there');
435440

436441
} else if (cluster.isWorker) {
@@ -526,7 +531,7 @@ When a new worker is forked the cluster module will emit a `'fork'` event.
526531
This can be used to log worker activity, and create your own timeout.
527532

528533
```js
529-
var timeouts = [];
534+
const timeouts = [];
530535
function errorMsg() {
531536
console.error('Something must be wrong with the connection ...');
532537
}
@@ -590,7 +595,7 @@ If you need to support older versions and don't need the worker object,
590595
you can work around the discrepancy by checking the number of arguments:
591596

592597
```js
593-
cluster.on('message', function(worker, message, handle) {
598+
cluster.on('message', (worker, message, handle) => {
594599
if (arguments.length === 2) {
595600
handle = message;
596601
message = worker;
@@ -809,7 +814,7 @@ before last `'disconnect'` or `'exit'` event is emitted.
809814
```js
810815
// Go through all workers
811816
function eachWorker(callback) {
812-
for (var id in cluster.workers) {
817+
for (const id in cluster.workers) {
813818
callback(cluster.workers[id]);
814819
}
815820
}
@@ -823,7 +828,7 @@ the worker's unique id is the easiest way to find the worker.
823828

824829
```js
825830
socket.on('data', (id) => {
826-
var worker = cluster.workers[id];
831+
const worker = cluster.workers[id];
827832
});
828833
```
829834

0 commit comments

Comments
 (0)