diff --git a/model.go b/model.go index 55f9d4f..eb6fb8d 100644 --- a/model.go +++ b/model.go @@ -1,9 +1,11 @@ package model import ( + "context" "fmt" "reflect" "sync" + "time" "qoobing.com/gomod/gorm" "qoobing.com/gomod/log" @@ -127,7 +129,15 @@ func RedisOf(name string) redis.Conn { if !ok { panic(errNoModelFound(name)) } - return m.redisPool.Get() + var ctx, cancelFunc = context.WithTimeout(context.Background(), 3*time.Second) + var conn, err = m.redisPool.GetContext(ctx) + if err != nil { + cancelFunc() + log.Warningf("get redis connect from pool failed, err:%s", err) + panic(err) + } + defer cancelFunc() + return conn } func RedisPool() *redis.Pool {