- assert断言
- async_hooks异步钩子
- async_hooks/context异步上下文
- buffer缓冲区
- C++插件
- C/C++插件(使用Node-API)
- C++嵌入器
- child_process子进程
- cluster集群
- CLI命令行
- console控制台
- Corepack核心包
- crypto加密
- crypto/webcrypto网络加密
- debugger调试器
- deprecation弃用
- dgram数据报
- diagnostics_channel诊断通道
- dns域名服务器
- domain域
- Error错误
- events事件触发器
- fs文件系统
- global全局变量
- http超文本传输协议
- http2超文本传输协议2.0
- https安全超文本传输协议
- inspector检查器
- Intl国际化
- module模块
- module/cjsCommonJS模块
- module/esmECMAScript模块
- module/package包模块
- net网络
- os操作系统
- path路径
- perf_hooks性能钩子
- policy安全策略
- process进程
- punycode域名代码
- querystring查询字符串
- readline逐行读取
- repl交互式解释器
- report诊断报告
- stream流
- stream/web网络流
- string_decoder字符串解码器
- timers定时器
- tls安全传输层
- trace_events跟踪事件
- tty终端
- url网址
- util实用工具
- v8引擎
- vm虚拟机
- wasi网络汇编系统接口
- worker_threads工作线程
- zlib压缩
Node.js v16.16.0 文档
- Node.js 16.16.0
-
►
目录
- cluster 集群
- 工作原理
Worker
类'disconnect'
事件'exit'
事件'fork'
事件'listening'
事件'message'
事件'online'
事件'setup'
事件cluster.disconnect([callback])
cluster.fork([env])
cluster.isMaster
cluster.isPrimary
cluster.isWorker
cluster.schedulingPolicy
cluster.settings
cluster.setupMaster([settings])
cluster.setupPrimary([settings])
cluster.worker
cluster.workers
- cluster 集群
-
►
索引
- assert 断言
- async_hooks 异步钩子
- async_hooks/context 异步上下文
- buffer 缓冲区
- C++插件
- C/C++插件(使用Node-API)
- C++嵌入器
- child_process 子进程
- cluster 集群
- CLI 命令行
- console 控制台
- Corepack 核心包
- crypto 加密
- crypto/webcrypto 网络加密
- debugger 调试器
- deprecation 弃用
- dgram 数据报
- diagnostics_channel 诊断通道
- dns 域名服务器
- domain 域
- Error 错误
- events 事件触发器
- fs 文件系统
- global 全局变量
- http 超文本传输协议
- http2 超文本传输协议2.0
- https 安全超文本传输协议
- inspector 检查器
- Intl 国际化
- module 模块
- module/cjs CommonJS模块
- module/esm ECMAScript模块
- module/package 包模块
- net 网络
- os 操作系统
- path 路径
- perf_hooks 性能钩子
- policy 安全策略
- process 进程
- punycode 域名代码
- querystring 查询字符串
- readline 逐行读取
- repl 交互式解释器
- report 诊断报告
- stream 流
- stream/web 网络流
- string_decoder 字符串解码器
- timers 定时器
- tls 安全传输层
- trace_events 跟踪事件
- tty 终端
- url 网址
- util 实用工具
- v8 引擎
- vm 虚拟机
- wasi 网络汇编系统接口
- worker_threads 工作线程
- zlib 压缩
- ► 其他版本
- 文档搜索
- 会员登录
目录
- cluster 集群
- 工作原理
Worker
类'disconnect'
事件'exit'
事件'fork'
事件'listening'
事件'message'
事件'online'
事件'setup'
事件cluster.disconnect([callback])
cluster.fork([env])
cluster.isMaster
cluster.isPrimary
cluster.isWorker
cluster.schedulingPolicy
cluster.settings
cluster.setupMaster([settings])
cluster.setupPrimary([settings])
cluster.worker
cluster.workers
cluster 集群#
Node.js 进程集群可用于运行多个 Node.js 实例,这些实例可以在其应用程序线程之间分配工作负载。
当不需要进程隔离时,请改用 worker_threads
模块,它允许在单个 Node.js 实例中运行多个应用程序线程。
工作原理#
工作进程使用 child_process.fork()
方法衍生,因此它们可以通过 IPC 与父进程通信并且来回传递服务器句柄。
Worker
类#
Worker
对象包含了工作进程的所有公共的信息和方法。
在主进程中,可以使用 cluster.workers
来获取它。
在工作进程中,可以使用 cluster.worker
来获取它。
'disconnect'
事件#
类似于 cluster.on('disconnect')
事件,但特定于此工作进程。
'error'
事件#
此事件与 child_process.fork()
提供的相同。
'exit'
事件#
类似于 cluster.on('exit')
事件,但特定于此工作进程。
'listening'
事件#
类似于 cluster.on('listening')
事件,但特定于此工作进程。
'message'
事件#
类似于 cluster
的 'message'
事件,但特定于此工作线程。
'online'
事件#
类似于 cluster.on('online')
事件,但特定于此工作进程。
worker.disconnect()
#
在工作进程中,此函数将关闭所有服务器,等待那些服务器上的 'close'
事件,然后断开 IPC 通道。
worker.exitedAfterDisconnect
#
如果工作进程由于 .kill()
或 .disconnect()
退出,则此属性为 true
。
如果工作进程以任何其他方式退出,则为 false
。
如果工作进程没有退出,则为 undefined
。
worker.id
#
每个新的工作进程都被赋予了自己唯一的 id,此 id 存储在 id
.
worker.isConnected()
#
如果工作进程通过其 IPC 通道连接到其主进程,则此函数返回 true
,否则返回 false
。
工作进程在创建后连接到其主进程。
触发 'disconnect'
事件后断开连接。
worker.isDead()
#
如果工作进程已终止(由于退出或收到信号),则此函数返回 true
。
否则,它返回 false
。
worker.kill([signal])
#
此函数会杀死工作进程。
在主进程中,它通过断开 worker.process
来实现这一点,一旦断开连接,就使用 signal
杀死。
在工作进程中,它通过断开通道来完成,然后以代码 0
退出。
worker.process
#
所有工作进程都是使用 child_process.fork()
创建,此函数返回的对象存储为 .process
。
在工作进程中,存储了全局的 process
。
worker.send(message[, sendHandle[, options]][, callback])
#
向工作进程或主进程发送消息,可选择使用句柄。
'disconnect'
事件#
在工作进程 IPC 通道断开连接后触发。
当工作进程正常退出、被杀死、或手动断开连接(例如使用 worker.disconnect()
)时,可能会发生这种情况。
'exit'
事件#
当任何工作进程死亡时,则集群模块将触发 'exit'
事件。
'fork'
事件#
当新的工作进程被衍生时,则集群模块将触发 'fork'
事件。
这可用于记录工作进程的活动,并创建自定义的超时。
'listening'
事件#
从工作进程调用 listen()
后,当服务器上触发 'listening'
事件时,则主进程中的 cluster
也将触发 'listening'
事件。
'message'
事件#
当集群主进程接收到来自任何工作进程的消息时触发。
'online'
事件#
衍生新的工作进程之后,工作进程应该使用在线消息进行响应。
当主进程接收到在线消息时,它将触发此事件。
'fork'
和 'online'
的区别在于主进程衍生工作进程时触发衍生,而 'online'
在工作进程运行时触发。
'setup'
事件#
每次调用 .setupPrimary()
时触发。
cluster.disconnect([callback])
#
对 cluster.workers
中的每个工作进程调用 .disconnect()
。
cluster.fork([env])
#
衍生新的工作进程。
cluster.isMaster
#
弃用的 cluster.isPrimary
别名。
cluster.isPrimary
#
如果进程是主进程,则为真。
这是由 process.env.NODE_UNIQUE_ID
决定的。
如果 process.env.NODE_UNIQUE_ID
未定义,则 isPrimary
为 true
。
cluster.isWorker
#
如果进程不是主进程,则为真(与 cluster.isPrimary
相反)。
cluster.schedulingPolicy
#
调度策略,cluster.SCHED_RR
用于循环或 cluster.SCHED_NONE
将其留给操作系统。
这是全局的设置,一旦衍生第一个工作进程或调用 .setupPrimary()
(以先到者为准),就会有效地冻结。
cluster.settings
#
调用 .setupPrimary()
(或 .fork()
)之后,此设置对象将包含设置,包括默认值。
cluster.setupMaster([settings])
#
弃用的 .setupPrimary()
别名。
cluster.setupPrimary([settings])
#
setupPrimary
用于更改默认的 'fork' 行为。
调用后,设置将出现在 cluster.settings
中。
cluster.worker
#
对当前工作进程对象的引用。 在主进程中不可用。
cluster.workers
#
存储活动工作进程对象的哈希,以 id
字段为键。
这样可以很容易地遍历所有工作进程。
它仅在主进程中可用。