Skip to content

Commit 612e031

Browse files
authored
Merge pull request #322 from Nicholi/workerclusterInitFix
Workercluster init fix
2 parents 101c58c + e3dff86 commit 612e031

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

index.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ SocketCluster.prototype._init = function (options) {
109109
brokerController: null,
110110
brokerConnectRetryErrorThreshold: null,
111111
initController: null,
112+
initWorkerClusterController: null,
112113
rebootOnSignal: true,
113114
downgradeToUser: false,
114115
path: '/socketcluster/',
@@ -182,6 +183,12 @@ SocketCluster.prototype._init = function (options) {
182183
self._paths.appInitControllerPath = null;
183184
}
184185

186+
if (self.options.initWorkerClusterController) {
187+
self._paths.appInitWorkerClusterControllerPath = path.resolve(self.options.initWorkerClusterController);
188+
} else {
189+
self._paths.appInitWorkerClusterControllerPath = null;
190+
}
191+
185192
if (/\.js$/.test(self.options.wsEngine)) {
186193
self._paths.wsEnginePath = path.resolve(self.options.wsEngine);
187194
} else {

lib/workercluster.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ if (cluster.isMaster) {
4545
processTermTimeout = m.data.processTermTimeout;
4646
}
4747

48+
// Run an initController to initialize anything for the master process of all SCWorkers
49+
if (m.data.paths.appInitWorkerClusterControllerPath != null) {
50+
var _initWorkerClusterController = require(m.data.paths.appInitWorkerClusterControllerPath);
51+
_initWorkerClusterController.run();
52+
}
53+
4854
var workerCount = m.data.workerCount;
4955
var readyCount = 0;
5056
var isReady = false;

sample/server.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ var SocketCluster = require('socketcluster').SocketCluster;
88
var workerControllerPath = argv.wc || process.env.SOCKETCLUSTER_WORKER_CONTROLLER;
99
var brokerControllerPath = argv.bc || process.env.SOCKETCLUSTER_BROKER_CONTROLLER;
1010
var initControllerPath = argv.ic || process.env.SOCKETCLUSTER_INIT_CONTROLLER;
11+
var initWorkerClusterControllerPath = argv.iwc || process.env.SOCKETCLUSTER_INIT_WORKERCLUSTER_CONTROLLER;
1112
var environment = process.env.ENV || 'dev';
1213

1314
var options = {
@@ -20,6 +21,7 @@ var options = {
2021
workerController: workerControllerPath || __dirname + '/worker.js',
2122
brokerController: brokerControllerPath || __dirname + '/broker.js',
2223
initController: initControllerPath || null,
24+
initWorkerClusterController: initWorkerClusterControllerPath || null,
2325
socketChannelLimit: Number(process.env.SOCKETCLUSTER_SOCKET_CHANNEL_LIMIT) || 1000,
2426
clusterStateServerHost: argv.cssh || process.env.SCC_STATE_SERVER_HOST || null,
2527
clusterStateServerPort: process.env.SCC_STATE_SERVER_PORT || null,

0 commit comments

Comments
 (0)