不是代码的单例,要能实现复用连接
1
jksusu 2019-08-11 18:53:06 +08:00
连接池
|
2
Leigg 2019-08-12 09:09:21 +08:00 via Android
要复用连接应该用连接池,初始化连接池可以用单例。
|
3
Leigg 2019-08-12 09:10:10 +08:00 via Android
go 的 mysql 基本都有实现连接池。
|
5
TypeErrorNone 2019-08-12 10:52:13 +08:00
```
// Prefer a free connection, if possible. numFree := len(db.freeConn) if strategy == cachedOrNewConn && numFree > 0 { conn := db.freeConn[0] copy(db.freeConn, db.freeConn[1:]) db.freeConn = db.freeConn[:numFree-1] conn.inUse = true db.mu.Unlock() if conn.expired(lifetime) { conn.Close() return nil, driver.ErrBadConn } // Lock around reading lastErr to ensure the session resetter finished. conn.Lock() err := conn.lastErr conn.Unlock() if err == driver.ErrBadConn { conn.Close() return nil, driver.ErrBadConn } return conn, nil } ``` sql 库默认有连接池 |
6
Flourite OP sql 库默认是有连接池,这个是正确的,但你如何在不同的 package 共用同一个连接?
|
7
nomoon 2019-08-13 05:00:40 +08:00
把 connection 指针传到各个 package 里?
|