@@ -15,8 +15,10 @@ const http = require('http');
1515const numCPUs = require (' os' ).cpus ().length ;
1616
1717if (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
3640Running 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
4651Please note that on Windows, it is not yet possible to set up a named pipe
@@ -202,27 +207,27 @@ const http = require('http');
202207if (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
289294if (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
432437if (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.
526531This can be used to log worker activity, and create your own timeout.
527532
528533``` js
529- var timeouts = [];
534+ const timeouts = [];
530535function 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,
590595you 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
811816function 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
825830socket .on (' data' , (id ) => {
826- var worker = cluster .workers [id];
831+ const worker = cluster .workers [id];
827832});
828833```
829834
0 commit comments