From 7267f5e573daa593b48954acd6002cedce9467e3 Mon Sep 17 00:00:00 2001
From: Phillip Stagnet
Date: Tue, 11 Aug 2020 16:09:29 +0200
Subject: [PATCH] Add new config option into provider struct
---
pkg/session/redis/sess_redis.go | 31 +++++++-------
pkg/session/redis_cluster/redis_cluster.go | 36 ++++++++--------
.../redis_sentinel/sess_redis_sentinel.go | 42 +++++++++----------
3 files changed, 54 insertions(+), 55 deletions(-)
diff --git a/pkg/session/redis/sess_redis.go b/pkg/session/redis/sess_redis.go
index 7e991ef5..100f9e1e 100644
--- a/pkg/session/redis/sess_redis.go
+++ b/pkg/session/redis/sess_redis.go
@@ -109,12 +109,15 @@ func (rs *SessionStore) SessionRelease(w http.ResponseWriter) {
// Provider redis session provider
type Provider struct {
- maxlifetime int64
- savePath string
- poolsize int
- password string
- dbNum int
- poollist *redis.Client
+ maxlifetime int64
+ savePath string
+ poolsize int
+ password string
+ dbNum int
+ idleTimeout time.Duration
+ idleCheckFrequency time.Duration
+ maxRetries int
+ poollist *redis.Client
}
// SessionInit init redis session
@@ -149,25 +152,22 @@ func (rp *Provider) SessionInit(maxlifetime int64, savePath string) error {
} else {
rp.dbNum = 0
}
- var idleTimeout time.Duration = 0
if len(configs) > 4 {
timeout, err := strconv.Atoi(configs[4])
if err == nil && timeout > 0 {
- idleTimeout = time.Duration(timeout) * time.Second
+ rp.idleTimeout = time.Duration(timeout) * time.Second
}
}
- var idleCheckFrequency time.Duration = 0
if len(configs) > 5 {
checkFrequency, err := strconv.Atoi(configs[5])
if err == nil && checkFrequency > 0 {
- idleCheckFrequency = time.Duration(checkFrequency) * time.Second
+ rp.idleCheckFrequency = time.Duration(checkFrequency) * time.Second
}
}
- var maxRetries = 0
if len(configs) > 6 {
retries, err := strconv.Atoi(configs[6])
if err == nil && retries > 0 {
- maxRetries = retries
+ rp.maxRetries = retries
}
}
@@ -176,9 +176,9 @@ func (rp *Provider) SessionInit(maxlifetime int64, savePath string) error {
Password: rp.password,
PoolSize: rp.poolsize,
DB: rp.dbNum,
- IdleTimeout: idleTimeout,
- IdleCheckFrequency: idleCheckFrequency,
- MaxRetries: maxRetries,
+ IdleTimeout: rp.idleTimeout,
+ IdleCheckFrequency: rp.idleCheckFrequency,
+ MaxRetries: rp.maxRetries,
})
return rp.poollist.Ping().Err()
@@ -249,4 +249,3 @@ func (rp *Provider) SessionAll() int {
func init() {
session.Register("redis", redispder)
}
-
diff --git a/pkg/session/redis_cluster/redis_cluster.go b/pkg/session/redis_cluster/redis_cluster.go
index 75dc0e63..d6f051c1 100644
--- a/pkg/session/redis_cluster/redis_cluster.go
+++ b/pkg/session/redis_cluster/redis_cluster.go
@@ -107,12 +107,15 @@ func (rs *SessionStore) SessionRelease(w http.ResponseWriter) {
// Provider redis_cluster session provider
type Provider struct {
- maxlifetime int64
- savePath string
- poolsize int
- password string
- dbNum int
- poollist *rediss.ClusterClient
+ maxlifetime int64
+ savePath string
+ poolsize int
+ password string
+ dbNum int
+ idleTimeout time.Duration
+ idleCheckFrequency time.Duration
+ maxRetries int
+ poollist *rediss.ClusterClient
}
// SessionInit init redis_cluster session
@@ -147,35 +150,32 @@ func (rp *Provider) SessionInit(maxlifetime int64, savePath string) error {
} else {
rp.dbNum = 0
}
- var idleTimeout time.Duration = 0
if len(configs) > 4 {
timeout, err := strconv.Atoi(configs[4])
if err == nil && timeout > 0 {
- idleTimeout = time.Duration(timeout) * time.Second
+ rp.idleTimeout = time.Duration(timeout) * time.Second
}
}
- var idleCheckFrequency time.Duration = 0
if len(configs) > 5 {
checkFrequency, err := strconv.Atoi(configs[5])
if err == nil && checkFrequency > 0 {
- idleCheckFrequency = time.Duration(checkFrequency) * time.Second
+ rp.idleCheckFrequency = time.Duration(checkFrequency) * time.Second
}
}
- var maxRetries = 0
if len(configs) > 6 {
retries, err := strconv.Atoi(configs[6])
if err == nil && retries > 0 {
- maxRetries = retries
+ rp.maxRetries = retries
}
}
rp.poollist = rediss.NewClusterClient(&rediss.ClusterOptions{
- Addrs: strings.Split(rp.savePath, ";"),
- Password: rp.password,
- PoolSize: rp.poolsize,
- IdleTimeout: idleTimeout,
- IdleCheckFrequency: idleCheckFrequency,
- MaxRetries: maxRetries,
+ Addrs: strings.Split(rp.savePath, ";"),
+ Password: rp.password,
+ PoolSize: rp.poolsize,
+ IdleTimeout: rp.idleTimeout,
+ IdleCheckFrequency: rp.idleCheckFrequency,
+ MaxRetries: rp.maxRetries,
})
return rp.poollist.Ping().Err()
}
diff --git a/pkg/session/redis_sentinel/sess_redis_sentinel.go b/pkg/session/redis_sentinel/sess_redis_sentinel.go
index da287b8d..67790096 100644
--- a/pkg/session/redis_sentinel/sess_redis_sentinel.go
+++ b/pkg/session/redis_sentinel/sess_redis_sentinel.go
@@ -107,13 +107,16 @@ func (rs *SessionStore) SessionRelease(w http.ResponseWriter) {
// Provider redis_sentinel session provider
type Provider struct {
- maxlifetime int64
- savePath string
- poolsize int
- password string
- dbNum int
- poollist *redis.Client
- masterName string
+ maxlifetime int64
+ savePath string
+ poolsize int
+ password string
+ dbNum int
+ idleTimeout time.Duration
+ idleCheckFrequency time.Duration
+ maxRetries int
+ poollist *redis.Client
+ masterName string
}
// SessionInit init redis_sentinel session
@@ -157,37 +160,34 @@ func (rp *Provider) SessionInit(maxlifetime int64, savePath string) error {
} else {
rp.masterName = "mymaster"
}
- var idleTimeout time.Duration = 0
if len(configs) > 5 {
timeout, err := strconv.Atoi(configs[4])
if err == nil && timeout > 0 {
- idleTimeout = time.Duration(timeout) * time.Second
+ rp.idleTimeout = time.Duration(timeout) * time.Second
}
}
- var idleCheckFrequency time.Duration = 0
if len(configs) > 6 {
checkFrequency, err := strconv.Atoi(configs[5])
if err == nil && checkFrequency > 0 {
- idleCheckFrequency = time.Duration(checkFrequency) * time.Second
+ rp.idleCheckFrequency = time.Duration(checkFrequency) * time.Second
}
}
- var maxRetries = 0
if len(configs) > 7 {
retries, err := strconv.Atoi(configs[6])
if err == nil && retries > 0 {
- maxRetries = retries
+ rp.maxRetries = retries
}
}
rp.poollist = redis.NewFailoverClient(&redis.FailoverOptions{
- SentinelAddrs: strings.Split(rp.savePath, ";"),
- Password: rp.password,
- PoolSize: rp.poolsize,
- DB: rp.dbNum,
- MasterName: rp.masterName,
- IdleTimeout: idleTimeout,
- IdleCheckFrequency: idleCheckFrequency,
- MaxRetries: maxRetries,
+ SentinelAddrs: strings.Split(rp.savePath, ";"),
+ Password: rp.password,
+ PoolSize: rp.poolsize,
+ DB: rp.dbNum,
+ MasterName: rp.masterName,
+ IdleTimeout: rp.idleTimeout,
+ IdleCheckFrequency: rp.idleCheckFrequency,
+ MaxRetries: rp.maxRetries,
})
return rp.poollist.Ping().Err()