作者 邓超

优化

@@ -349,6 +349,26 @@ class DbPool { @@ -349,6 +349,26 @@ class DbPool {
349 } 349 }
350 350
351 351
  352 + /**
  353 + * 验证是否正常连接
  354 + * @return bool
  355 + * @author:dc
  356 + * @time 2024/4/10 10:09
  357 + */
  358 + public function ping(){
  359 + try {
  360 + $query = $this->getClient()->query("select 200;");
  361 + if($query->fetchColumn() == 200){
  362 + return true;
  363 + }
  364 + }catch (\Throwable $e){
  365 + return false;
  366 + }
  367 +
  368 + return false;
  369 + }
  370 +
  371 +
352 372
353 /** 373 /**
354 * @param $cid 374 * @param $cid
@@ -360,6 +380,13 @@ class DbPool { @@ -360,6 +380,13 @@ class DbPool {
360 if(empty(static::$instance[$cid])){ 380 if(empty(static::$instance[$cid])){
361 static::$instance[$cid] = new DbPool($cid); 381 static::$instance[$cid] = new DbPool($cid);
362 } 382 }
  383 +
  384 + if(!static::$instance[$cid]->ping()){
  385 + static::$instance[$cid]->close();
  386 +
  387 + static::$instance[$cid] = new DbPool($cid);
  388 + }
  389 +
363 return static::$instance[$cid]; 390 return static::$instance[$cid];
364 } 391 }
365 392