2015-06-02 42 views
5

使用node.js集群模块可以直接获取工作进程的ID。从工作者进程中获取工作者的ID

https://nodejs.org/api/cluster.html

,这将是:

cluster.on('fork', function (worker) { 
    console.log('A worker', worker.id, 'was forked.'); 
}); 

,但我怎么能得到工人的id从工人自身内部?当集群分叉工人时,集群模块如何不给工人一个id?

我是否真的必须从主进程中发送工人的群集ID?

我寻找到一个类似于:

process.id(相对于process.pid)

process.worker.id 
在任何情况下

,我有麻烦搞清楚什么的ID的工人来自工人本身。

回答

15
var cluster = require('cluster'); 

if (cluster.isMaster) { 
    console.log('I am master'); 
    cluster.fork(); 
    cluster.fork(); 
} else if (cluster.isWorker) { 
    console.log('I am worker #' + cluster.worker.id); 
} 

here