Closed GnixSung closed 5 years ago
当协成获取连接池连接为空时 是否可以使用EasySwoole\Mysqli处理此协成获取不到Mysql连接问题 $db = PoolManager::getInstance()->getPool($this->_mysqlPoolClass)->getObj(Config::getInstance()->getConf("database.{$this->_dbName}.pool_time_out")); if($db instanceof MysqlObject) { $this->_db = $db; } else { //如果连接池为空的话 //使用swoole异步Mysql连接 $dbConfig = Config::getInstance()->getConf('database.'.toUnderScore($this->_dbName)); $this->_db = new Mysqli($dbConfig); }
说明你还说没有懂连接池的意义。连接池其实是等于降级保护数据库的
我的理解连接池是 “为了节省创建mysql连接的开销可复用,如果连接池为空的情况则再额外创建连接防止上层逻辑完成失败”
当你无法准确的估算出当前项目连接池需要预加载连接池多少连接数时,我觉得此操作是可行的 防止获取连接失败导致逻辑上的错误
你的理解有问题,这种做法不可取
当协成获取连接池连接为空时 是否可以使用EasySwoole\Mysqli处理此协成获取不到Mysql连接问题 $db = PoolManager::getInstance()->getPool($this->_mysqlPoolClass)->getObj(Config::getInstance()->getConf("database.{$this->_dbName}.pool_time_out")); if($db instanceof MysqlObject) { $this->_db = $db; } else { //如果连接池为空的话 //使用swoole异步Mysql连接 $dbConfig = Config::getInstance()->getConf('database.'.toUnderScore($this->_dbName)); $this->_db = new Mysqli($dbConfig); }