cluster: emit 'message' event on cluster master
For consistency with the worker 'exit', 'online', 'disconnect', and 'listening' events which are emitted on worker and cluster, also emit 'message' on cluster. Reviewed-by: Sam Roberts <vieuxtech@gmail.com> Reviewed-by: Christian Tellnes <christian@tellnes.no> Reviewed-by: Stephen Belanger <admin@stephenbelanger.com> PR-URL: https://github.com/nodejs/io.js/pull/861
This commit is contained in:
parent
e11fc67225
commit
66fc8ca22b
@ -248,6 +248,16 @@ This can be used to restart the worker by calling `.fork()` again.
|
||||
|
||||
See [child_process event: 'exit'](child_process.html#child_process_event_exit).
|
||||
|
||||
## Event: 'message'
|
||||
|
||||
* `worker` {Worker object}
|
||||
* `message` {Object}
|
||||
|
||||
Emitted when any worker receives a message.
|
||||
|
||||
See
|
||||
[child_process event: 'message'](child_process.html#child_process_event_message).
|
||||
|
||||
## Event: 'setup'
|
||||
|
||||
* `settings` {Object}
|
||||
@ -530,6 +540,8 @@ created. It is disconnected after the `disconnect` event is emitted.
|
||||
|
||||
* `message` {Object}
|
||||
|
||||
Similar to the `cluster.on('message')` event, but specific to this worker.
|
||||
|
||||
This event is the same as the one provided by `child_process.fork()`.
|
||||
|
||||
In a worker you can also use `process.on('message')`.
|
||||
|
@ -319,6 +319,8 @@ function masterInit() {
|
||||
process: workerProcess
|
||||
});
|
||||
|
||||
worker.on('message', this.emit.bind(this, 'message'));
|
||||
|
||||
function removeWorker(worker) {
|
||||
assert(worker);
|
||||
|
||||
|
@ -6,7 +6,7 @@ var net = require('net');
|
||||
|
||||
function forEach(obj, fn) {
|
||||
Object.keys(obj).forEach(function(name, index) {
|
||||
fn(obj[name], name, index);
|
||||
fn(obj[name], name);
|
||||
});
|
||||
}
|
||||
|
||||
@ -45,6 +45,10 @@ if (cluster.isWorker) {
|
||||
else if (cluster.isMaster) {
|
||||
|
||||
var checks = {
|
||||
global: {
|
||||
'receive': false,
|
||||
'correct': false
|
||||
},
|
||||
master: {
|
||||
'receive': false,
|
||||
'correct': false
|
||||
@ -76,12 +80,15 @@ else if (cluster.isMaster) {
|
||||
// Spawn worker
|
||||
var worker = cluster.fork();
|
||||
|
||||
// When a IPC message is received form the worker
|
||||
// When a IPC message is received from the worker
|
||||
worker.on('message', function(message) {
|
||||
check('master', message === 'message from worker');
|
||||
});
|
||||
cluster.on('message', function(message) {
|
||||
check('global', message === 'message from worker');
|
||||
});
|
||||
|
||||
// When a TCP connection is made with the worker connect to it
|
||||
// When a TCP server is listening in the worker connect to it
|
||||
worker.on('listening', function() {
|
||||
|
||||
client = net.connect(common.PORT, function() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user