NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
neforce::database_pool类 参考

数据库连接池类 更多...

#include <database_pool.hpp>

struct  pool_config
 连接池配置 更多...

Public 成员函数

 database_pool (db_type type, const db_config &config)
 构造函数
 database_pool (db_type type, const db_config &config, const pool_config &pool_config)
 构造函数
 ~database_pool ()
 析构函数
shared_ptr< idb_connectget_connect ()
 获取通用数据库连接
shared_ptr< idb_tb_connectget_tb_connect ()
 获取关系型数据库连接
shared_ptr< idb_kv_connectget_kv_connect ()
 获取键值存储连接
size_t idle_count () const noexcept
 获取空闲连接数
size_t active_count () const noexcept
 获取活跃连接数
size_t total_count () const noexcept
 获取总连接数
void warm_up (size_t n)
 预热连接池
template<typename Rep, typename Period>
shared_ptr< idb_connectget_connect_for (const duration< Rep, Period > &timeout)
 获取通用数据库连接(自定义超时)
template<typename Rep, typename Period>
shared_ptr< idb_tb_connectget_tb_connect_for (const duration< Rep, Period > &timeout)
 获取关系型数据库连接(自定义超时)
template<typename Rep, typename Period>
shared_ptr< idb_kv_connectget_kv_connect_for (const duration< Rep, Period > &timeout)
 获取键值存储连接(自定义超时)
bool is_running () const noexcept
 检查连接池是否正在运行
void stop ()
 停止连接池

详细描述

数据库连接池类

管理数据库连接的生命周期,提供连接的获取和归还功能。 内部维护一个空闲连接队列,支持多线程安全访问。

主要特性:

  • 连接复用,减少连接创建开销
  • 最小/最大连接数配置
  • 空闲连接超时回收
  • 连接健康检查
  • 自动补充连接
  • 获取连接超时控制
  • 支持关系型数据库和键值存储

在文件 database_pool.hpp42 行定义.

构造及析构函数说明

◆ database_pool() [1/2]

neforce::database_pool::database_pool ( db_type type,
const db_config & config )
inline

构造函数

参数
type数据库类型
config数据库连接配置

在文件 database_pool.hpp105 行定义.

引用了 database_pool().

被这些函数引用 database_pool() , 以及 ~database_pool().

◆ database_pool() [2/2]

neforce::database_pool::database_pool ( db_type type,
const db_config & config,
const pool_config & pool_config )

构造函数

参数
type数据库类型
config数据库连接配置
pool_config连接池配置
异常
database_exception初始化连接失败时抛出

◆ ~database_pool()

neforce::database_pool::~database_pool ( )

析构函数

停止所有后台线程,释放所有连接资源。

引用了 database_pool().

成员函数说明

◆ active_count()

size_t neforce::database_pool::active_count ( ) const
noexcept

获取活跃连接数

返回
当前正在使用的连接数量

引用了 active_count().

被这些函数引用 active_count().

◆ get_connect()

shared_ptr< idb_connect > neforce::database_pool::get_connect ( )

获取通用数据库连接

返回
共享指针管理的连接对象

返回基类idb_connect指针,适用于不需要特定类型操作的场景。

◆ get_connect_for()

template<typename Rep, typename Period>
shared_ptr< idb_connect > neforce::database_pool::get_connect_for ( const duration< Rep, Period > & timeout)
inline

获取通用数据库连接(自定义超时)

模板参数
Rep时长表示类型
Period时长周期类型
参数
timeout获取超时时间
返回
共享指针管理的连接对象,超时返回 nullptr

在文件 database_pool.hpp188 行定义.

引用了 get_connect_for() , 以及 timeout.

被这些函数引用 get_connect_for().

◆ get_kv_connect()

shared_ptr< idb_kv_connect > neforce::database_pool::get_kv_connect ( )

获取键值存储连接

返回
共享指针管理的连接对象

返回idb_kv_connect指针,支持键值操作。

◆ get_kv_connect_for()

template<typename Rep, typename Period>
shared_ptr< idb_kv_connect > neforce::database_pool::get_kv_connect_for ( const duration< Rep, Period > & timeout)
inline

获取键值存储连接(自定义超时)

模板参数
Rep时长表示类型
Period时长周期类型
参数
timeout获取超时时间
返回
共享指针管理的连接对象,超时返回 nullptr

在文件 database_pool.hpp212 行定义.

引用了 timeout.

◆ get_tb_connect()

shared_ptr< idb_tb_connect > neforce::database_pool::get_tb_connect ( )

获取关系型数据库连接

返回
共享指针管理的连接对象

返回idb_tb_connect指针,支持SQL查询操作。

◆ get_tb_connect_for()

template<typename Rep, typename Period>
shared_ptr< idb_tb_connect > neforce::database_pool::get_tb_connect_for ( const duration< Rep, Period > & timeout)
inline

获取关系型数据库连接(自定义超时)

模板参数
Rep时长表示类型
Period时长周期类型
参数
timeout获取超时时间
返回
共享指针管理的连接对象,超时返回 nullptr

在文件 database_pool.hpp200 行定义.

引用了 timeout.

◆ idle_count()

size_t neforce::database_pool::idle_count ( ) const
noexcept

获取空闲连接数

返回
当前空闲队列中的连接数量

◆ is_running()

bool neforce::database_pool::is_running ( ) const
inlinenoexcept

检查连接池是否正在运行

返回
运行中返回true

在文件 database_pool.hpp220 行定义.

引用了 neforce::memory_order_acquire.

◆ stop()

void neforce::database_pool::stop ( )

停止连接池

停止所有后台线程,等待当前使用中的连接归还后释放资源。

◆ total_count()

size_t neforce::database_pool::total_count ( ) const
noexcept

获取总连接数

返回
当前总连接数(包括使用中和空闲)

引用了 total_count().

被这些函数引用 total_count().

◆ warm_up()

void neforce::database_pool::warm_up ( size_t n)

预热连接池

参数
n预创建的连接数量

创建指定数量的连接并放入空闲队列。 创建的连接数受 max_size 限制。

引用了 warm_up().

被这些函数引用 warm_up().


该类的文档由以下文件生成: