Node.js Cluster 进程模块
实例
将代码运行三次,第一次作为主代码,后面两次作为子进程工作代码:
var cluster = require('cluster');
if (cluster.isWorker) {
console.log('I am a worker');
} else {
console.log('I am a master');
cluster.fork();
cluster.fork();
}
定义与用法
cluster
模块提供了一种创建同时运行并共享同一服务端口的子进程的方法。
Node.js 运行单线程编程,这非常节省内存,但为了利用计算机的多核系统,集群模块允许您轻松创建子进程,每个子进程在各自的单线程上运行,以处理负载。
语法
在应用程序中包含群集(cluster)模块的语法:
var cluster = require('cluster');
Cluster 属性和方法
方法 | 描述 |
---|---|
disconnect() | 断开所有子进程的连接 |
exitedAfterDisconnect | 如果子进程在断开连接后退出,或 kill 方法退出,则返回 true |
fork() | 从主进程创建一个子进程 |
id | 子进程的唯一 id |
isConnected | 如果子进程连接到其主进程,则返回 true,否则返回 false |
isDead | 如果子工作进程已停止,则返回 true,否则返回 false |
isMaster | 如果当前进程是主进程,则返回 true,否则返回 false |
isWorker | 如果当前进程是子工作进程,则返回 true,否则返回 false |
kill() | 杀掉当前进程 |
process | 返回全局子进程 |
schedulingPolicy | 设置或获取 schedulingPolicy |
send() | 向主进程或子进程发送消息 |
settings | 返回包含群集(cluster)设置的对象 |
setupMaster() | 修改群集(cluster)设置 |
worker | 返回当前子进程的对象 |
workers | 返回一个主进程的所有子进程 |