db_pool
简介
数据库连接池,依赖pkg.dbi
/pkg.gsmysql
/pkg.gsqlite
使用步骤:
- 设置数据库连接参数
mysql:
db_pool.set_db_config("record", {
"driver" : "mysql",
"address" : "localhost",
"db": "records",
"user": "root",
"passwd": "123",
"max_conn_count": 20
});
sqlite:
db_pool.set_db_config("abc", {
"driver" : "sqlite",
"db" : "abc",
"max_conn_count": 20
});
PS: max_conn_count
: 必须设置, 否则会陷入死循环
- 获取连接
object o = db_pool.take_connection("record");
PS: 使用完后必须记得将连接放回连接池
- 关闭连接/放回连接
defer db_pool.give_connection(o);
- 使用连接, 参考dbi
write(o.select("select * from err_fp2id"));
组件接口
db_conns.gs
函数原型 | 函数作用 |
---|---|
object assure_connection() | 返回当前协程对应的连接对象 |
object take_connection() | 从连接池获取前往数据库的连接对象 |
void give_connection(object conn) | 释放连接池对象 |
db_pool.gs
函数原型 | 函数作用 |
---|---|
void set_db_config(string db, map db_config) | 设置数据库的连接配置 |
parallel map get_db_config(string db) | 取某个数据库的配置信息 |
object take_connection(string type) | 从连接池获取前往数据库的连接对象 |
void give_connection(object conn) | 释放连接池对象 |
object assure_connection(string type) | 返回当前协程对应的连接对象 |
parallel object new_connection(string type) | 新建一个到目标的连接 |