Golag实现的连接池
功能:
连接池中连接类型为iterface{},使得更加通用
链接的最大空闲时间,超时的链接将关闭丢弃,可避免空闲时链接自动失效问题
使用chael处理池中的链接,高效
基本用法
//factory 创建连接的方法factory := fuc() (iterface{}, error) { retur et.Dial("tcp", "127.0.0.1:4000") }//close 关闭链接的方法close := fuc(v iterface{}) error { retur v.(et.Co).Close() }//创建一个连接池: 初始化5,最大链接30poolCofig := &pool.PoolCofig{ IitialCap: 5, MaxCap: 30, Factory: factory, Close: close, //链接最大空闲时间,超过该时间的链接 将会关闭,可避免空闲时链接EOF,自动失效的问题 IdleTimeout: 15 * time.Secod,}p, err := pool.NewChaelPool(poolCofig)if err != il { fmt.Pritl("err=", err)}//从连接池中取得一个链接v, err := p.Get()//do somethig//co=v.(et.Co)//将链接放回连接池中p.Put(v)//释放连接池中的所有链接p.Release()//查看当前链接中的数量curret := p.Le()
评论