\swoole_connpool

class swoole_connpool

Summary

Methods
Properties
Constants
__construct()
setConfig()
createConnPool()
on()
get()
release()
destroy()
getStatInfo()
No public properties found
SWOOLE_CONNNECT_OK
SWOOLE_CONNNECT_ERR
SWOOLE_CONNPOOL_TCP
SWOOLE_CONNPOOL_REDIS
SWOOLE_CONNPOOL_MYSQL
No protected methods found
No protected properties found
N/A
No private methods found
No private properties found
N/A

Constants

SWOOLE_CONNNECT_OK

SWOOLE_CONNNECT_OK

连接正常

SWOOLE_CONNNECT_ERR

SWOOLE_CONNNECT_ERR

连接异常

SWOOLE_CONNPOOL_TCP

SWOOLE_CONNPOOL_TCP

TCP 连接池

SWOOLE_CONNPOOL_REDIS

SWOOLE_CONNPOOL_REDIS

redis 连接池

SWOOLE_CONNPOOL_MYSQL

SWOOLE_CONNPOOL_MYSQL

mysql 连接池

Methods

__construct()

__construct(integer  $connPoolType) 

swoole_connpool constructor.

Parameters

integer $connPoolType

,连接池类型

swoole_connpool::SWOOLE_CONNPOOL_TCP   ,  tcp连接池
swoole_connpool::SWOOLE_CONNPOOL_REDIS ,   redis连接池
swoole_connpool::SWOOLE_CONNPOOL_MYSQL ,   mysql连接池

setConfig()

setConfig(array  $cfg) : boolean

setCfg 连接配置,支持重置

Parameters

array $cfg

连接池连接配置信息, createConnpool 会对该参数进行校验

连接池配置信息包括两部分,一部分是与连接池的通用配置信息,另一部是具体类型的连接池所需的连接信息
连接池通用配置信息:
 "hbTimeout" => 500,            // 心跳超时时间,int类型,单位ms,可选,默认500ms
 "connectTimeout"  => 500,      // 连接超时时间,int类型,单位ms,可选,默认500ms
 "hbIntervalTime"  => 0,            // 心跳间隔时间,int类型,单位ms,可选,默认为0ms
 "connectInterval" => 300       // 重连间隔,   int类型,单位ms,可选,默认100ms~400ms
 "maxConnectInterval" => 3000,  // 最大重连时间,int类型,单位ms,可选,默认2000ms~5000ms
 "maxConnectTimes"    => 3,     // 最大连接次数,int类型,       可选,默认3次
连接池具体连接相关配置,如,
tcp 连接池:
 "host" => "127.0.0.1",            // 连接地址, string类型,必选
 "port" => 12345                   // 连接端口, int类型,   必选
redis 连接池,参考swoole_redis::connect接口的配置项
mysql 连接池,参考swoole_mysql::connect接口的配置项

Returns

boolean —

true设置成功,false设置失败

createConnPool()

createConnPool(integer  $minPoolnum, integer  $maxPoolnum) : boolean

createConnPool 创建连接池,接口内部对所有已经设置的参数进行校验

Parameters

integer $minPoolnum

连接池最小对象个数

integer $maxPoolnum

连接池最大对象个数

Returns

boolean —

true设置成功,false设置失败

on()

on(string  $cbName, callable  $hbCallback) : boolean

on 设置回调函数

Parameters

string $cbName

回调名称

"hbConstruct"    // 心跳消息构造
"hbCheck"        // 心跳回复校验
callable $hbCallback

回调函数,参见hbConstruct/hbCheck

hbConstruct 心跳消息构造函数
return array
     "method" => "get",    // 心跳发送接口,string 类型,对于redis连接池 必选,其他连接池无效
     "args" => "",        // 心跳数据,string类型
function hbConstruct() {}
hbCheck 心跳消息校验函数
param  swoole_connpool $pool 连接池
param  $conn_obj  连接对象,类型与具体连接池类型相关
param  $data      回调数据

return bool   true 校验成功,false 校验失败
function hbCheck(swoole_connpool $pool,$conn_obj,$data) {}

Returns

boolean —

true设置成功,false设置失败

get()

get(integer  $timeout, callable  $objCall) : boolean

get 获取连接对象

Parameters

integer $timeout

超时时间,单位ms

callable $objCall

回调函数,函数原型参见connObjCallback

connObjCallback 获取连接对象结果回调
  @param $pool swoole_connpool 连接池对象
  @param $conObj  false:获取连接连接超时,其他,为连接对象,
                         如tcp连接池,conObj为swoole_client类型;
  function connObjCallback(swoole_connpool $pool,$conObj){}

Returns

boolean —

true调用成功,false调用失败

release()

release(  $connObj, integer  $conStatus = self::SWOOLE_CONNNECT_OK) : boolean

release 释放连接对象,会对用户参数进行校验

Parameters

$connObj

连接对象,如tcp连接池时,为swoole_client类型

integer $conStatus

可选,默认为swoole_connpool::SWOOLE_CONNNECT_OK

连接状态
      swoole_connpool::SWOOLE_CONNNECT_OK
   swoole_connpool::SWOOLE_CONNNECT_ERR

Returns

boolean —

true调用成功,false调用失败

destroy()

destroy() 

destroy 销毁连接池对象,调用此接口前,需要将连接对象全部释放,调用此接口后,不能再使用该连接池其他方法

getStatInfo()

getStatInfo() : array

getStatInfo 获取连接状态

Returns

array —
[
 "all_conn_obj" => 0,    //int类型,当前连接池的大小
 "idle_conn_obj" => 0,  //int类型,当前空闲连接数
]