使用gatewayworker 和redis消息订阅造成的多进程阻塞

ykw090721

在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);
            }
        });
}
4373 3 0
3个回答

静默

subscribe 本来就是阻塞的调用吧。

ykw090721

[attach]2414[/attach],现在cpu4核8G,开的50个进程,不到五分钟就都满了
 

six
  • 暂无评论
年代过于久远,无法发表回答
🔝