cluster-service
Advanced tools
Comparing version 0.9.2 to 0.10.0
@@ -68,3 +68,4 @@ var cluster = require("cluster"); | ||
cluster.worker.module = require(process.env.worker); | ||
if (locals.workerReady === undefined && process.env.ready === false) { | ||
if (locals.workerReady === undefined | ||
&& process.env.ready.toString() === "false") { | ||
// if workerReady not invoked explicitly, inform master worker is ready | ||
@@ -71,0 +72,0 @@ exports.workerReady(); |
@@ -13,3 +13,2 @@ var cservice = require("../cluster-service"), | ||
worker: "./worker.js", | ||
ready: false, | ||
count: undefined, | ||
@@ -20,2 +19,3 @@ restart: true, | ||
}, options); | ||
options.ready = false; | ||
if ( | ||
@@ -44,11 +44,5 @@ options.worker.indexOf(".") === 0 | ||
options.onReady = cb; | ||
if (options.wasReady === false) { | ||
options.ready = false; // preserve preference between restarts, etc | ||
} | ||
worker = cluster.fork(options); | ||
worker.cservice = options; | ||
worker.on("message", onMessageFromWorker); | ||
if (options.ready === true && typeof cb === "function") { | ||
cb(null, worker); | ||
} | ||
@@ -68,3 +62,2 @@ return worker; | ||
// preserve preference between restarts, etc | ||
worker.cservice.wasReady = false; | ||
worker.cservice.ready = true; | ||
@@ -71,0 +64,0 @@ worker.cservice.onStop = (msg.cservice.onStop === true); |
@@ -49,7 +49,5 @@ var cservice = require("../cluster-service"), | ||
main: { | ||
worker: options.workers, | ||
ready: (options.ready !== undefined && options.ready !== 'false') | ||
worker: options.workers | ||
} | ||
}; | ||
delete options.ready; | ||
} | ||
@@ -56,0 +54,0 @@ if (options.commands) { |
{ | ||
"name": "cluster-service", | ||
"version": "0.9.2", | ||
"version": "0.10.0", | ||
"author": { | ||
@@ -5,0 +5,0 @@ "name": "Aaron Silvas", |
@@ -122,3 +122,3 @@ # cluster-service | ||
forked based on value of ```workerCount```. An object indicates one or more worker objects: | ||
```{ "worker1": { worker: "worker1.js", cwd: process.cwd(), count: 2, ready: false, restart: true } }```. | ||
```{ "worker1": { worker: "worker1.js", cwd: process.cwd(), count: 2, restart: true } }```. | ||
This option is automatically set if run via command-line ```cservice "worker.js"``` if | ||
@@ -125,0 +125,0 @@ the ```.js``` extension is detected. |
@@ -77,3 +77,3 @@ var cservice = require("../cluster-service"); | ||
done(); | ||
}, "./test/workers/basic", {ready: false, count: 1, timeout: 10000}); | ||
}, "./test/workers/basic", {count: 1, timeout: 10000}); | ||
}); | ||
@@ -85,3 +85,3 @@ | ||
done(); | ||
}, "./test/workers/longInit", {ready: false, count: 1, timeout: 100}); | ||
}, "./test/workers/longInit", {count: 1, timeout: 100}); | ||
}); | ||
@@ -126,3 +126,3 @@ | ||
done(); | ||
}, "all", "./test/workers/basic2", {ready: false} | ||
}, "all", "./test/workers/basic2" | ||
); | ||
@@ -152,61 +152,3 @@ }); | ||
}); | ||
it('Start legacy async worker', function(done) { | ||
var startTime = new Date().getTime(); | ||
cservice.start( | ||
{ | ||
workers: | ||
{ | ||
legacyReady: { | ||
worker: "./test/workers/legacyReady.js", | ||
ready: false, | ||
count: 1 | ||
} | ||
} | ||
}, | ||
function() { | ||
assert.equal( | ||
cservice.workers.length, | ||
1, | ||
"1 worker expected, but " + cservice.workers.length + " found" | ||
); | ||
var diffTime = (new Date().getTime() - startTime); | ||
assert.ok(diffTime >= 1000, | ||
"Legacy workerReady logic should have taken >= 1000ms, " + | ||
"but returned in " + diffTime + "ms" | ||
); | ||
done(); | ||
} | ||
); | ||
}); | ||
it('Start legacy async worker with ready set to true', function(done) { | ||
var startTime = new Date().getTime(); | ||
cservice.start( | ||
{ | ||
workers: | ||
{ | ||
legacyReady: { | ||
worker: "./test/workers/legacyReady.js", | ||
ready: true, | ||
count: 1 | ||
} | ||
} | ||
}, | ||
function() { | ||
assert.equal( | ||
cservice.workers.length, | ||
2, | ||
"2 workers expected, but " + cservice.workers.length + " found" | ||
); | ||
var diffTime = (new Date().getTime() - startTime); | ||
assert.ok(diffTime < 1000, | ||
"Legacy workerReady logic should have taken < 1000ms, " + | ||
"but returned in " + diffTime + "ms" | ||
); | ||
done(); | ||
} | ||
); | ||
}); | ||
it('Start inline async worker', function(done) { | ||
@@ -227,4 +169,4 @@ var startTime = new Date().getTime(); | ||
cservice.workers.length, | ||
3, | ||
"3 workers expected, but " + cservice.workers.length + " found" | ||
1, | ||
"1 workers expected, but " + cservice.workers.length + " found" | ||
); | ||
@@ -231,0 +173,0 @@ var diffTime = (new Date().getTime() - startTime); |
117870
3075