|
1 | 1 | 'use strict'; |
2 | 2 | const assert = require('assert'); |
3 | 3 | const { fork } = require('child_process'); |
4 | | -const util = require('util'); |
5 | 4 | const path = require('path'); |
6 | 5 | const EventEmitter = require('events'); |
7 | 6 | const RoundRobinHandle = require('internal/cluster/round_robin_handle'); |
@@ -47,14 +46,14 @@ if (schedulingPolicy === undefined) { |
47 | 46 | cluster.schedulingPolicy = schedulingPolicy; |
48 | 47 |
|
49 | 48 | cluster.setupMaster = function(options) { |
50 | | - var settings = { |
| 49 | + const settings = { |
51 | 50 | args: process.argv.slice(2), |
52 | 51 | exec: process.argv[1], |
53 | 52 | execArgv: process.execArgv, |
54 | | - silent: false |
| 53 | + silent: false, |
| 54 | + ...cluster.settings, |
| 55 | + ...options |
55 | 56 | }; |
56 | | - util._extend(settings, cluster.settings); |
57 | | - util._extend(settings, options || {}); |
58 | 57 |
|
59 | 58 | // Tell V8 to write profile data for each process to a separate file. |
60 | 59 | // Without --logfile=v8-%p.log, everything ends up in a single, unusable |
@@ -101,15 +100,12 @@ function setupSettingsNT(settings) { |
101 | 100 | } |
102 | 101 |
|
103 | 102 | function createWorkerProcess(id, env) { |
104 | | - const workerEnv = util._extend({}, process.env); |
| 103 | + const workerEnv = { ...process.env, ...env, NODE_UNIQUE_ID: `${id}` }; |
105 | 104 | const execArgv = cluster.settings.execArgv.slice(); |
106 | 105 | const debugArgRegex = /--inspect(?:-brk|-port)?|--debug-port/; |
107 | 106 | const nodeOptions = process.env.NODE_OPTIONS ? |
108 | 107 | process.env.NODE_OPTIONS : ''; |
109 | 108 |
|
110 | | - util._extend(workerEnv, env); |
111 | | - workerEnv.NODE_UNIQUE_ID = '' + id; |
112 | | - |
113 | 109 | if (execArgv.some((arg) => arg.match(debugArgRegex)) || |
114 | 110 | nodeOptions.match(debugArgRegex)) { |
115 | 111 | let inspectPort; |
@@ -315,17 +311,18 @@ function queryServer(worker, message) { |
315 | 311 |
|
316 | 312 | // Set custom server data |
317 | 313 | handle.add(worker, (errno, reply, handle) => { |
318 | | - reply = util._extend({ |
319 | | - errno: errno, |
320 | | - key: key, |
321 | | - ack: message.seq, |
322 | | - data: handles.get(key).data |
323 | | - }, reply); |
| 314 | + const { data } = handles.get(key); |
324 | 315 |
|
325 | 316 | if (errno) |
326 | 317 | handles.delete(key); // Gives other workers a chance to retry. |
327 | 318 |
|
328 | | - send(worker, reply, handle); |
| 319 | + send(worker, { |
| 320 | + errno, |
| 321 | + key, |
| 322 | + ack: message.seq, |
| 323 | + data, |
| 324 | + ...reply |
| 325 | + }, handle); |
329 | 326 | }); |
330 | 327 | } |
331 | 328 |
|
|
0 commit comments