diff --git a/session/impl_redis.go b/session/impl_redis.go index 61ee10e..770e1bd 100644 --- a/session/impl_redis.go +++ b/session/impl_redis.go @@ -191,13 +191,16 @@ func (c *consumer_redis) query_internal(sk storagekey) (*sessionRedis, bool, err } if ok { - return found, false, nil + if time.Now().Before(found.expireAt) { + // 만료전 세션 + return found, false, nil + } + + // 다른 Consumer가 Touch했을 수도 있으므로 redis에서 읽어본다. } payload, err := c.redisClient.Get(c.ctx, string(sk)).Result() - if err == redis.Nil { - return nil, false, nil - } else if err != nil { + if err != nil && err != redis.Nil { logger.Println("consumer Query :", err) return nil, false, err }