public static function onWorkerStart($businessWorker)
{
// Channel客戶端連接到Channel服務(wù)端
Channel\Client::connect('172.14.0.111', 8989);
// // 訂閱broadcast事件,并注冊(cè)事件回調(diào)
Channel\Client::on('sendMessage', function($event_data){
//推送好友消息
print_r($event_data);
$sendData['type'] = 'sendMessage';
$sendData['data'] = $event_data['sendData'];
Gateway::sendToGroup('group_'.$event_data['rece_uid'], json_encode($sendData));
});
}
在 Event.php 的 onWorkerStart 中訂閱了管道事件,我收到了管道通知后就需要執(zhí)行我的業(yè)務(wù)邏輯。
由于我設(shè)置的進(jìn)程是四個(gè)(默認(rèn)),所以執(zhí)行了四次,但是我只需要執(zhí)行一次即可。
四個(gè)進(jìn)程id($businessWorker->id),分別是0、1、2、3,我想隨機(jī)獲取一個(gè)進(jìn)程id讓其執(zhí)行,不隨機(jī)的話如果只使用一個(gè)進(jìn)程應(yīng)該是會(huì)出現(xiàn)阻塞的。
我的這個(gè)想法是否可行?是否還有更好的方案?