跳到主要内容

db_pool

简介

数据库连接池,依赖pkg.dbi/pkg.gsmysql/pkg.gsqlite

使用步骤:

  1. 设置数据库连接参数

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: 必须设置, 否则会陷入死循环

  1. 获取连接
object o = db_pool.take_connection("record");

PS: 使用完后必须记得将连接放回连接池

  1. 关闭连接/放回连接
defer db_pool.give_connection(o);
  1. 使用连接, 参考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)新建一个到目标的连接