This commit is contained in:
Vladimir Mihailenco 2019-06-14 16:00:03 +03:00
parent c0e70ad31d
commit 880e05d975
7 changed files with 15 additions and 22 deletions

View File

@ -1445,7 +1445,7 @@ func (c *ClusterClient) pubSub() *PubSub {
return nil, err
}
cn, err := node.Client.newConn()
cn, err := node.Client.newConn(context.TODO())
if err != nil {
node = nil

View File

@ -95,7 +95,10 @@ func (cn *Conn) deadline(ctx context.Context, timeout time.Duration) time.Time {
if timeout == 0 {
return deadline
}
return minNonzeroTime(deadline, tm)
if deadline.Before(tm) {
return deadline
}
return tm
}
}
@ -105,13 +108,3 @@ func (cn *Conn) deadline(ctx context.Context, timeout time.Duration) time.Time {
return noDeadline
}
func minNonzeroTime(a, b time.Time) time.Time {
if a.IsZero() {
return b
}
if b.IsZero() || a.Before(b) {
return a
}
return b
}

View File

@ -34,7 +34,7 @@ type Stats struct {
}
type Pooler interface {
NewConn() (*Conn, error)
NewConn(context.Context) (*Conn, error)
CloseConn(*Conn) error
Get(context.Context) (*Conn, error)
@ -115,7 +115,7 @@ func (p *ConnPool) checkMinIdleConns() {
}
func (p *ConnPool) addIdleConn() {
cn, err := p.newConn(nil, true)
cn, err := p.newConn(context.TODO(), true)
if err != nil {
return
}
@ -126,8 +126,8 @@ func (p *ConnPool) addIdleConn() {
p.connsMu.Unlock()
}
func (p *ConnPool) NewConn() (*Conn, error) {
return p._NewConn(nil, false)
func (p *ConnPool) NewConn(ctx context.Context) (*Conn, error) {
return p._NewConn(ctx, false)
}
func (p *ConnPool) _NewConn(ctx context.Context, pooled bool) (*Conn, error) {

View File

@ -14,7 +14,7 @@ func NewSingleConnPool(cn *Conn) *SingleConnPool {
}
}
func (p *SingleConnPool) NewConn() (*Conn, error) {
func (p *SingleConnPool) NewConn(context.Context) (*Conn, error) {
panic("not implemented")
}

View File

@ -23,7 +23,7 @@ func NewStickyConnPool(pool *ConnPool, reusable bool) *StickyConnPool {
}
}
func (p *StickyConnPool) NewConn() (*Conn, error) {
func (p *StickyConnPool) NewConn(context.Context) (*Conn, error) {
panic("not implemented")
}

View File

@ -139,8 +139,8 @@ func (c *baseClient) String() string {
return fmt.Sprintf("Redis<%s db:%d>", c.getAddr(), c.opt.DB)
}
func (c *baseClient) newConn() (*pool.Conn, error) {
cn, err := c.connPool.NewConn()
func (c *baseClient) newConn(ctx context.Context) (*pool.Conn, error) {
cn, err := c.connPool.NewConn(ctx)
if err != nil {
return nil, err
}
@ -581,7 +581,7 @@ func (c *Client) pubSub() *PubSub {
opt: c.opt,
newConn: func(channels []string) (*pool.Conn, error) {
return c.newConn()
return c.newConn(context.TODO())
},
closeConn: c.connPool.CloseConn,
}

View File

@ -150,7 +150,7 @@ func (c *SentinelClient) pubSub() *PubSub {
opt: c.opt,
newConn: func(channels []string) (*pool.Conn, error) {
return c.newConn()
return c.newConn(context.TODO())
},
closeConn: c.connPool.CloseConn,
}