跑几个小时,就会偶尔出现一次,发送了,但是服务端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);
};
顶顶顶
顶顶顶