cluster 集群模块可以创建共享服务器端口的子进程,本身是一个对象。
主要包含worker类,一些可监听的事件、方法和属性
cluster.isMaster:true/false;当该进程是主进程时返回true 由process.env.NODE_UNIQUE_ID。
cluster.fork()方法,创建一个子进程,返回一个worker类。会触发fork事件,fork事件接收的是返回的worker类。
worker类:主进程:通过cluster.workers获取worker对象集合,子进程通过cluster.worker来获取worker对象。
1.worker.disconnet(),子进程调用,关闭自身进程,主进程调用,关闭所有进程。
2.exitedAfterDisconnect。初始值undefind,主动关闭时是true,否则false.
3.id。独立编号,可作为索引。
4.isConnected(),返回true或false,判断子进程是否和主进程存在IPC连接关系。
5.isDead(),工作进程是否被终止,
6.kill()杀死工作进程。
7.process 一个全局的对象,是fork()方法返回的对象。
8.send(message,[sendHead],[callback]),发送消息的方法。用process.on('message')方法来监听值的发送
可监听的事件集合:
1.'disconnect' 事件.在工作进程的IPC管道被断开后触发本事件,可触发的方法,disconnect()和kill()。'disconnect'
和 'exit'
事件之间可能存在延迟。这些事件可以用来检测进程是否在清理过程中被卡住,或是否存在长时间运行的连接。
2.'exit'事件。当任何一个工作进程关闭的时候,cluster模块都将触发'exit'
事件。
3‘fork’事件,一个事件被fork时触发。
4‘listening’事件,当一个进程调用了server.listen()来创建一个端口号的时候,触发。
5‘meaage’,主进程接收任何子进程传过来的信息时触发。
6‘online’事件 当新建一个工作进程后,工作进程应当响应一个online消息给主进程。当主进程收到online消息后触发这个事件。
7‘setup’事件 每当 .setupMaster()
被调用的时候触发。设置主线程的一些参数,当fork()线程时用