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 | 返回主进程的所有工作进程 |