在gatewayworker中,使用redis做消息订阅,由于数据量大,现在在两台服务器上做的分布式部署,每台服务器businessworker都是开的十个进程,但是进程还是会很快都阻塞,请问各位大牛们怎么解决呢
public static function onWebSocketConnect($client_id, $data)
{
$token=$data;
$encryptedData = base64_decode($token);
$arr=json_decode($encryptedData,true);
$codeArr=explode(',',strtoupper($arr));
global $redis;
$_SESSION = $client_id;
$redis->subscribe($codeArr,function ($instance, $channelName, $message){
if(!empty($message)){
var_dump($message);
}
});
}
subscribe 本来就是阻塞的调用吧。
请问怎么解决呢
[attach]2414[/attach],现在cpu4核8G,开的50个进程,不到五分钟就都满了
gatewayWorker里不能用redis订阅
@3236:那用什么订阅呢
http://doc.workerman.net/components/channel.html 这个估计有用