zoukankan      html  css  js  c++  java
  • fatih/pool golang tcp 连接池工具

    golang tcp 连接池工具

    参考使用

    // create a factory() to be used with channel based pool
    factory    := func() (net.Conn, error) { return net.Dial("tcp", "127.0.0.1:4000") }
    // create a new channel based pool with an initial capacity of 5 and maximum
    // capacity of 30. The factory will create 5 initial connections and put it
    // into the pool.
    p, err := pool.NewChannelPool(5, 30, factory)
    // now you can get a connection from the pool, if there is no connection
    // available it will create a new one via the factory function.
    conn, err := p.Get()
    // do something with conn and put it back to the pool by closing the connection
    // (this doesn't close the underlying connection instead it's putting it back
    // to the pool).
    conn.Close()
    // close the underlying connection instead of returning it to pool
    // it is useful when acceptor has already closed connection and conn.Write() returns error
    if pc, ok := conn.(*pool.PoolConn); ok {
      pc.MarkUnusable()
      pc.Close()
    }
    // close pool any time you want, this closes all the connections inside a pool
    p.Close()
    // currently available connections in the pool
    current := p.Len()
     
     

    参考资料

    https://github.com/fatih/pool

  • 相关阅读:
    leetcode69
    leetcode204
    leetcode414
    leetcode532
    leetcode28
    leetcode155
    leetcode303
    leetcode190
    2018-7-21-win10-uwp-调用-Microsoft.Windows.Photos_8wekyb3d8bbwe-应用
    2018-7-21-win10-uwp-调用-Microsoft.Windows.Photos_8wekyb3d8bbwe-应用
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/14083494.html
Copyright © 2011-2022 走看看