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 | 返回一个主进程的所有子进程 |