$worker->connections 這樣只能獲取到當(dāng)前進(jìn)程的連接數(shù)。
我想獲取每個(gè) Worker 進(jìn)程的信息是通過 Channel 來(lái)做的,每個(gè)進(jìn)程啟動(dòng)時(shí)都監(jiān)聽一個(gè)專門用于收集信息的消息,當(dāng)某個(gè)進(jìn)程想要獲取其它進(jìn)程的消息時(shí),就向 Channel 發(fā)出這個(gè)消息,同時(shí)監(jiān)聽上報(bào)的消息名,所有 Worker 會(huì)通過上報(bào)消息名提交自己的狀態(tài)。
發(fā)出消息稱為 Request,上報(bào)稱為 Reponse,Request 通過 Worker 的數(shù)量作為 Count Down 來(lái)統(tǒng)計(jì)是否已收到所有進(jìn)程的消息,同時(shí)加上超時(shí)的設(shè)置。
Request 完全收到消息后就通過 Client::unsubscribe($event); 取消該消息的訂閱。
目前這樣做還不錯(cuò),我稱這個(gè)組件叫作 Collector,哈哈。