設(shè)置了$worker->count = 4;每個(gè)worker都作為channel組件的client連接了server,都訂閱了某個(gè)事件.每次publish事件時(shí)候,四個(gè)進(jìn)程都響應(yīng)了這個(gè)事件。我只想要一個(gè)進(jìn)程響應(yīng)該事件。多用戶請(qǐng)求同時(shí)出發(fā)publish事件時(shí)候分給這四個(gè)進(jìn)程分別去處理。
只讓一個(gè)進(jìn)程監(jiān)聽(tīng)這個(gè)事件,代碼類似
$worker = new Worker('websocket://0.0.0.0:1234');
$worker->onWorkerStart = function($worker){
// 只在0號(hào)進(jìn)程監(jiān)聽(tīng)某個(gè)事件
if ($worker->id == 0) {
Channel::on('事件', functiong(){});
}
};
一個(gè)進(jìn)程處理這個(gè)事件可能會(huì)不夠,我最后還是決定改為隊(duì)列+多進(jìn)程來(lái)處理這個(gè)問(wèn)題了。謝謝你的回答