Node.js Cluster 进程 模块
示例
运行三次代码,第一次作为主进程,然后作为工作进程var cluster = require('cluster');
if (cluster.isWorker) {
console.log('我是一个工作进程');
} else {
console.log('我是一个主进程');
cluster.fork();
cluster.fork();
}
运行示例 »
定义和用法
cluster 模块提供了一种创建子进程的方法,这些子进程可以同时运行并共享同一个服务器端口。
Node.js 运行单线程编程,这非常节省内存,但是为了利用计算机的多核系统,Cluster 模块允许您轻松创建子进程,每个进程在其自己的单线程上运行,以处理负载。
语法
在应用程序中包含 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 | 返回全局 Child Process 对象 |
| schedulingPolicy | 设置或获取 schedulingPolicy |
| send() | 将消息发送给主进程或工作进程 |
| 设置 | 返回包含 cluster 设置的对象 |
| setupMaster() | 更改 cluster 的设置 |
| worker | 返回当前工作进程对象 |
| workers | 返回主进程的所有工作进程 |