acl
3.5.3.0
|
#include <connect_pool.hpp>
Public 成员函数 | |
connect_pool (const char *addr, size_t max, size_t idx=0) | |
virtual | ~connect_pool () |
connect_pool & | set_timeout (int conn_timeout, int rw_timeout) |
connect_pool & | set_retry_inter (int retry_inter) |
connect_pool & | set_idle_ttl (time_t ttl) |
connect_pool & | set_check_inter (int n) |
connect_client * | peek (bool on=true) |
void | bind_one (connect_client *conn) |
void | put (connect_client *conn, bool keep=true) |
int | check_idle (time_t ttl, bool exclusive=true) |
void | set_alive (bool ok) |
bool | aliving () |
const char * | get_addr () const |
size_t | get_max () const |
size_t | get_count () const |
size_t | get_idx () const |
void | reset_statistics (int inter) |
unsigned long long | get_total_used () const |
unsigned long long | get_current_used () const |
void | set_key (const char *key) |
const char * | get_key (void) const |
Protected 成员函数 | |
virtual connect_client * | create_connect ()=0 |
void | set_delay_destroy () |
Protected 成员函数 继承自 acl::acl::noncopyable | |
noncopyable () | |
~noncopyable () | |
Protected 属性 | |
bool | alive_ |
bool | delay_destroy_ |
int | retry_inter_ |
time_t | last_dead_ |
char | key_ [256] |
char | addr_ [256] |
int | conn_timeout_ |
int | rw_timeout_ |
size_t | idx_ |
size_t | max_ |
size_t | count_ |
time_t | idle_ttl_ |
time_t | last_check_ |
int | check_inter_ |
locker | lock_ |
unsigned long long | total_used_ |
unsigned long long | current_used_ |
time_t | last_ |
std::list< connect_client * > | pool_ |
友元 | |
class | connect_manager |
客户端连接池类,实现对连接池的动态管理,该类为纯虚类,需要子类实现 纯虚函数 create_connect 用于创建与服务端的一个连接,当允许该类 对象允许通过 set_delay_destroy() 设置延迟销毁时,该类的子类实例 必须是动态对象
在文件 connect_pool.hpp 第 19 行定义.
acl::connect_pool::connect_pool | ( | const char * | addr, |
size_t | max, | ||
size_t | idx = 0 |
||
) |
构造函数
addr | {const char*} 服务器监听地址,格式:ip:port(domain:port) |
max | {size_t} 连接池最大连接个数限制,如果该值设为 0,则不设置 连接池的连接上限 |
idx | {size_t} 该连接池对象在集合中的下标位置(从 0 开始) |
|
virtual |
该类当允许自行销毁时,类实例应为动态对象
bool acl::connect_pool::aliving | ( | ) |
检查连接池是否正常,当连接池有问题时,该函数还会检测该连接池是否应该 自动恢复,如果允许恢复,则将该连接池又置为可用状态
void acl::connect_pool::bind_one | ( | connect_client * | conn | ) |
将一个不属于当前连接池的连接对象与当前连接池对象绑定,使之从属于当前 连接池对象
conn | {redis_client*} |
int acl::connect_pool::check_idle | ( | time_t | ttl, |
bool | exclusive = true |
||
) |
检查连接池中空闲的连接,将过期的连接释放掉
ttl | {time_t} 空闲时间间隔超过此值的连接将被释放 |
exclusive | {bool} 内部是否需要加锁 |
|
protectedpure virtual |
纯虚函数,需要子类实现
在 acl::redis_client_pool, acl::mysql_pool, acl::http_request_pool, acl::memcache_pool, acl::tcp_pool, acl::sqlite_pool , 以及 acl::pgsql_pool 内被实现.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
在文件 connect_pool.hpp 第 175 行定义.
|
inline |
|
inline |
connect_client* acl::connect_pool::peek | ( | bool | on = true | ) |
从连接池中尝试性获取一个连接,当服务器不可用、距上次服务端连接异常 时间间隔未过期或连接池连接个数达到连接上限则将返回 NULL;当创建一个 新的与服务器的连接时失败,则该连接池会被置为不可用状态
on | {bool} 该参数决定当连接池没有可用连接时是否创建新的连接, 如果为 false,则不会创建新连接 |
void acl::connect_pool::put | ( | connect_client * | conn, |
bool | keep = true |
||
) |
释放一个连接至连接池中,当该连接池对应的服务器不可用或调用者希望关闭 该连接时,则该连接将会被直接释放
conn | {redis_client*} |
keep | {bool} 是否针对该连接保持长连接 |
void acl::connect_pool::reset_statistics | ( | int | inter | ) |
重置统计计数器
inter | {int} 统计的时间间隔 |
void acl::connect_pool::set_alive | ( | bool | ok | ) |
设置连接池的存活状态
ok | {bool} 设置该连接是否正常 |
connect_pool& acl::connect_pool::set_check_inter | ( | int | n | ) |
|
protected |
设置该连接池对象为延迟自销毁,当内部发现引用计数为 0 时会自行销毁
connect_pool& acl::connect_pool::set_idle_ttl | ( | time_t | ttl | ) |
设置连接池中空闲连接的空闲生存周期
ttl | {time_t} 空闲连接生存周期,当该值 < 0 表示空闲连接不过期, == 0 时表示立刻过期,> 0 表示空闲该时间段后将被释放 |
void acl::connect_pool::set_key | ( | const char * | key | ) |
connect_pool& acl::connect_pool::set_retry_inter | ( | int | retry_inter | ) |
设置连接池异常的重试时间间隔
retry_inter | {int} 当连接断开后,重新再次打开连接的时间间隔(秒), 当该值 <= 0 时表示允许连接断开后可以立即重连,否则必须超过该时间间隔 后才允许断开重连;未调用本函数时,内部缺省值为 1 秒 |
connect_pool& acl::connect_pool::set_timeout | ( | int | conn_timeout, |
int | rw_timeout | ||
) |
此接口用来设置超时时间
conn_timeout | {int} 网络连接超时时间(秒) |
rw_timeout | {int} 网络 IO 超时时间(秒) |
|
friend |
在文件 connect_pool.hpp 第 187 行定义.
|
protected |
在文件 connect_pool.hpp 第 202 行定义.
|
protected |
在文件 connect_pool.hpp 第 195 行定义.
|
protected |
在文件 connect_pool.hpp 第 210 行定义.
|
protected |
在文件 connect_pool.hpp 第 203 行定义.
|
protected |
在文件 connect_pool.hpp 第 207 行定义.
|
protected |
在文件 connect_pool.hpp 第 214 行定义.
|
protected |
在文件 connect_pool.hpp 第 196 行定义.
|
protected |
在文件 connect_pool.hpp 第 208 行定义.
|
protected |
在文件 connect_pool.hpp 第 205 行定义.
|
protected |
在文件 connect_pool.hpp 第 201 行定义.
|
protected |
在文件 connect_pool.hpp 第 215 行定义.
|
protected |
在文件 connect_pool.hpp 第 209 行定义.
|
protected |
在文件 connect_pool.hpp 第 199 行定义.
|
protected |
在文件 connect_pool.hpp 第 212 行定义.
|
protected |
在文件 connect_pool.hpp 第 206 行定义.
|
protected |
在文件 connect_pool.hpp 第 216 行定义.
|
protected |
在文件 connect_pool.hpp 第 198 行定义.
|
protected |
在文件 connect_pool.hpp 第 204 行定义.
|
protected |
在文件 connect_pool.hpp 第 213 行定义.