Skip to content

Commit 88d8dde

Browse files
yashLadhaaduh95
authored andcommitted
lib: refactor to use mapping in cluster master
Cluster master message handler is basically doing the same thing for different message actions which can be avoided. Thus move to method mapping object and doing a single lookup to find the function to execute and it doesnot exists, skip the execution chain. PR-URL: #36250 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent 28e9c10 commit 88d8dde

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

lib/internal/cluster/primary.js

+12-10
Original file line numberDiff line numberDiff line change
@@ -252,19 +252,21 @@ cluster.disconnect = function(cb) {
252252
intercom.once('disconnect', cb);
253253
};
254254

255+
const methodMessageMapping = {
256+
close,
257+
exitedAfterDisconnect,
258+
listening,
259+
online,
260+
queryServer,
261+
};
262+
255263
function onmessage(message, handle) {
256264
const worker = this;
257265

258-
if (message.act === 'online')
259-
online(worker);
260-
else if (message.act === 'queryServer')
261-
queryServer(worker, message);
262-
else if (message.act === 'listening')
263-
listening(worker, message);
264-
else if (message.act === 'exitedAfterDisconnect')
265-
exitedAfterDisconnect(worker, message);
266-
else if (message.act === 'close')
267-
close(worker, message);
266+
const fn = methodMessageMapping[message.act];
267+
268+
if (typeof fn === 'function')
269+
fn(worker, message);
268270
}
269271

270272
function online(worker) {

0 commit comments

Comments
 (0)