forked from mirror/redis
Merge pull request #1332 from go-redis/feature/cluster-new-client
Add ClusterOptions.NewClient hook
This commit is contained in:
commit
8f52186ce7
11
cluster.go
11
cluster.go
|
@ -68,6 +68,9 @@ type ClusterOptions struct {
|
||||||
ReadTimeout time.Duration
|
ReadTimeout time.Duration
|
||||||
WriteTimeout time.Duration
|
WriteTimeout time.Duration
|
||||||
|
|
||||||
|
// NewClient creates a cluster node client with provided name and options.
|
||||||
|
NewClient func(opt *Options) *Client
|
||||||
|
|
||||||
// PoolSize applies per cluster node and not for the whole cluster.
|
// PoolSize applies per cluster node and not for the whole cluster.
|
||||||
PoolSize int
|
PoolSize int
|
||||||
MinIdleConns int
|
MinIdleConns int
|
||||||
|
@ -77,7 +80,6 @@ type ClusterOptions struct {
|
||||||
IdleCheckFrequency time.Duration
|
IdleCheckFrequency time.Duration
|
||||||
|
|
||||||
TLSConfig *tls.Config
|
TLSConfig *tls.Config
|
||||||
Limiter Limiter
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (opt *ClusterOptions) init() {
|
func (opt *ClusterOptions) init() {
|
||||||
|
@ -120,6 +122,10 @@ func (opt *ClusterOptions) init() {
|
||||||
case 0:
|
case 0:
|
||||||
opt.MaxRetryBackoff = 512 * time.Millisecond
|
opt.MaxRetryBackoff = 512 * time.Millisecond
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if opt.NewClient == nil {
|
||||||
|
opt.NewClient = NewClient
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (opt *ClusterOptions) clientOptions() *Options {
|
func (opt *ClusterOptions) clientOptions() *Options {
|
||||||
|
@ -148,7 +154,6 @@ func (opt *ClusterOptions) clientOptions() *Options {
|
||||||
IdleCheckFrequency: disableIdleCheck,
|
IdleCheckFrequency: disableIdleCheck,
|
||||||
|
|
||||||
TLSConfig: opt.TLSConfig,
|
TLSConfig: opt.TLSConfig,
|
||||||
Limiter: opt.Limiter,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,7 +171,7 @@ func newClusterNode(clOpt *ClusterOptions, addr string) *clusterNode {
|
||||||
opt := clOpt.clientOptions()
|
opt := clOpt.clientOptions()
|
||||||
opt.Addr = addr
|
opt.Addr = addr
|
||||||
node := clusterNode{
|
node := clusterNode{
|
||||||
Client: NewClient(opt),
|
Client: clOpt.NewClient(opt),
|
||||||
}
|
}
|
||||||
|
|
||||||
node.latency = math.MaxUint32
|
node.latency = math.MaxUint32
|
||||||
|
|
Loading…
Reference in New Issue