Skip to content

Commit 6697190

Browse files
maxeljkinpervovka
maxeljkin
authored andcommittedMar 22, 2023
feat: add portsPerGroup property
1 parent 7155799 commit 6697190

File tree

5 files changed

+11
-7
lines changed

5 files changed

+11
-7
lines changed
 

‎README.md

+5-2
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,11 @@ module.exports = {
112112
port : 8080,
113113

114114
// number of workers' groups; each group will
115-
// have its own port number (port + group number)
116-
groups : 2
115+
// have its own port number (port + group number * ports per group..port + (group number + 1) * ports per group - 1)
116+
groups : 2,
117+
118+
// number of ports per worker group; default 1
119+
portsPerGroup: 2,
117120
},
118121

119122
// extensions to load

‎examples/simple_server/luster.conf.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
},
1212

1313
"server" : {
14-
"port" : 10080,
14+
"port" : 8080,
1515
"groups" : 3
1616
}
1717
}

‎examples/simple_server/worker.js

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
const http = require('http'),
22
worker = require('luster');
33

4-
if (worker.wid === 1 || worker.wid === 0) {
5-
console.log('try to open http://localhost:%s', process.env.port);
6-
}
4+
console.log('Worker #%s: try to open http://localhost:%s', worker.wid, process.env.port);
75

86
http
97
.createServer((req, res) => {

‎lib/configuration/check.js

+2
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ const CHECKS = {
3434
'server.port': { type: ['number', 'string'] },
3535
// increase port for every group
3636
'server.groups': { type: 'number' },
37+
// number of ports for each group
38+
'server.portsPerGroup': { type: 'number' },
3739
// hash of extensions; keys – modules' names, values – extensions' configs
3840
'extensions': { type: 'object' },
3941
// path to node_modules directory which contains extensions

‎lib/master.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ class Master extends ClusterProcess {
221221
count = this.config.get('workers', os.cpus().length),
222222
isServerPortSet = this.config.has('server.port'),
223223
groups = this.config.get('server.groups', 1),
224+
portsPerGroup = this.config.get('server.portsPerGroup', 1),
224225
workersPerGroup = Math.floor(count / groups);
225226

226227
let port,
@@ -240,7 +241,7 @@ class Master extends ClusterProcess {
240241
stopTimeout,
241242
exitThreshold,
242243
allowedSequentialDeaths,
243-
port: isServerPortSet ? port.next(group) : 0,
244+
port: isServerPortSet ? port.next(group * portsPerGroup) : 0,
244245
maxListeners: this.getMaxListeners(),
245246
}));
246247

0 commit comments

Comments
 (0)
Please sign in to comment.