Golang-Pool Golang 通用连接池库开源项目

我要开发同款
匿名用户2016年11月25日
44阅读
所属分类Google Go、程序开发、数据库连接池
授权协议MIT

作品详情

Golang实现的连接池

功能:

连接池中连接类型为interface{},使得更加通用

链接的最大空闲时间,超时的链接将关闭丢弃,可避免空闲时链接自动失效问题

使用channel处理池中的链接,高效

基本用法

//factory 创建连接的方法factory := func() (interface{}, error) { return net.Dial("tcp", "127.0.0.1:4000") }//close 关闭链接的方法close := func(v interface{}) error { return v.(net.Conn).Close() }//创建一个连接池: 初始化5,最大链接30poolConfig := &pool.PoolConfig{    InitialCap: 5,    MaxCap:     30,    Factory:    factory,    Close:      close,    //链接最大空闲时间,超过该时间的链接 将会关闭,可避免空闲时链接EOF,自动失效的问题    IdleTimeout: 15 * time.Second,}p, err := pool.NewChannelPool(poolConfig)if err != nil {    fmt.Println("err=", err)}//从连接池中取得一个链接v, err := p.Get()//do something//conn=v.(net.Conn)//将链接放回连接池中p.Put(v)//释放连接池中的所有链接p.Release()//查看当前链接中的数量current := p.Len()
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论