mirror of https://github.com/go-redis/redis.git
Merge 550b25c20e
into 930d904205
This commit is contained in:
commit
78d37bbdeb
|
@ -68,6 +68,7 @@ type Options struct {
|
|||
MaxActiveConns int
|
||||
ConnMaxIdleTime time.Duration
|
||||
ConnMaxLifetime time.Duration
|
||||
ConnChecker func(net.Conn) error
|
||||
}
|
||||
|
||||
type lastDialErrorWrap struct {
|
||||
|
@ -513,6 +514,12 @@ func (p *ConnPool) isHealthyConn(cn *Conn) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
if p.cfg.ConnChecker != nil {
|
||||
if err := p.cfg.ConnChecker(cn.netConn); err != nil {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
cn.SetUsedAt(now)
|
||||
return true
|
||||
}
|
||||
|
|
|
@ -139,6 +139,9 @@ type Options struct {
|
|||
// Default is to not close idle connections.
|
||||
ConnMaxLifetime time.Duration
|
||||
|
||||
// ConnChecker checks the health of a connection before returning it to the client.
|
||||
ConnChecker func(net.Conn) error
|
||||
|
||||
// TLS Config to use. When set, TLS will be negotiated.
|
||||
TLSConfig *tls.Config
|
||||
|
||||
|
@ -523,5 +526,6 @@ func newConnPool(
|
|||
MaxActiveConns: opt.MaxActiveConns,
|
||||
ConnMaxIdleTime: opt.ConnMaxIdleTime,
|
||||
ConnMaxLifetime: opt.ConnMaxLifetime,
|
||||
ConnChecker: opt.ConnChecker,
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue