From 405167719fd9bdfbf9b9c70f8ee7e8c05d9e0ab0 Mon Sep 17 00:00:00 2001 From: bryan Date: Fri, 30 Jan 2026 22:24:05 +0800 Subject: [PATCH] add redis connect from pool timeout --- model.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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 {