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