在多进程的时候如何获取所有进程的连接数?

0

$worker->connections 这样只能获取到当前进程的连接数。

已邀请:

walkor

赞同来自:

简单的方法是把进程数写到一个公共的存储,需要的时候去读取这个存储。
例如每个进程把连接数写到本地一个文件中,需要总数的时候去读取这个文件

pader - phper

赞同来自:

我想获取每个 Worker 进程的信息是通过 Channel 来做的,每个进程启动时都监听一个专门用于收集信息的消息,当某个进程想要获取其它进程的消息时,就向 Channel 发出这个消息,同时监听上报的消息名,所有 Worker 会通过上报消息名提交自己的状态。


发出消息称为 Request,上报称为 Reponse,Request 通过 Worker 的数量作为 Count Down 来统计是否已收到所有进程的消息,同时加上超时的设置。


Request 完全收到消息后就通过 Client::unsubscribe($event); 取消该消息的订阅。


目前这样做还不错,我称这个组件叫作 Collector,哈哈。

要回复问题请先登录注册