区分其他模块中的节点主集群

我正在做一个节点项目,我想通过节点集群运行它。 由于我有一些共享的资源和configuration可以由每个节点集群(工人)使用,在开始时我读这些configuration并保存到redis数据库。 此外,在其他一些模块中,我需要查询一些外部资源,并获取一些数据并保存到redis数据库(不是在启动时,当我需要的时候)。 对于这个研究,在启动时,我把我的configuration部分放入一个函数中,并在集群是Master(cluster.isMaster)的情况下调用它:

if (cluster.isMaster) configure(); 

我的问题是我怎么能在其他模块做同样的事情? 在其他模块中,我需要查询外部资源,并将其放入主集群中的redis,因为之后它也可以用于工作集群。 所以,不需要查询所有的集群。

所以在此先感谢,

从api http://nodejs.org/api/cluster.html

cluster.isMaster#布尔值如果进程是主节点,则为true。 这由process.env.NODE_UNIQUE_ID确定。 如果process.env.NODE_UNIQUE_ID未定义,则isMaster为true。

在你的模块中,你可以检查require('cluster').isMaster ,你不process.env.NODE_UNIQUE_ID直接检查process.env.NODE_UNIQUE_ID ,因为启动后总是会被删除,总是未定义的。 https://github.com/nodejs/node/blob/16689e30aeff​​03c8c47a605425727cf190c169e9/lib/internal/bootstrap_node.js#L129