偶尔触发,服务端接收不到数据的问题

jenchih

客户端发送数据,服务端,日志没看到

跑几个小时,就会偶尔出现一次,发送了,但是服务端log没有那条id的记录,,都是执行时间比较长的任务,可能1~3分钟之间,开启的进程数为20, 但是每次可能会一次性执行数量达到30,,其余的10个应该是在等待,但是有几个id确实长达10分钟在服务端都没看到

class Rpc
{   
    public function onMessage(TcpConnection $connection, $data)
    {
        $logger = Log::channel('rpclog');
        $logger->info($data);

        //设置此次请求的指纹
        $finger = $connection->id.'#'.time().mt_rand(0, 100000);
        \app\model\Log::setFlag($finger);
        // 响应数据给客户端
        $connection->send("success");
    }
}// end of class

客户端代码:

$_connection = new AsyncTcpConnection('tcp://127.0.0.1:'.$_server_port);
// 当连接建立成功时,发送请求数据
$_connection->onConnect = function(AsyncTcpConnection $_connection)use($value)
{
    $class_name = $value['class'];
    $method     = $value['func'];
    $args       = json_decode($value['params'],true);
    $args['_task_id'] = $value['id'];
    $request = [
        'class'  => $class_name,
        'method' => $method,
        'args'   => $args,
    ];

    $_connection->send(json_encode($request).PHP_EOL);
};
137 1 0
1个回答

jenchih

顶顶顶

×
🔝