feat: redis 支持超时

This commit is contained in:
2026-08-31 11:41:11 +08:00
parent a3543c79e2
commit b64dd043a9
2 changed files with 26 additions and 11 deletions
+11 -11
View File
@@ -258,17 +258,17 @@ func (o *OwnClient) newClient(instanceConfig *define.Options) *redisClient.Clien
Password: instanceConfig.Password,
// CredentialsProvider: nil,
// CredentialsProviderContext: nil,
MaxRetries: instanceConfig.MaxRetries,
MinRetryBackoff: time.Duration(instanceConfig.MinRetryBackoff) * time.Millisecond,
MaxRetryBackoff: time.Duration(instanceConfig.MaxRetryBackoff) * time.Millisecond,
DialTimeout: time.Duration(instanceConfig.DialTimeout) * time.Millisecond,
ReadTimeout: time.Duration(instanceConfig.ReadTimeout) * time.Millisecond,
WriteTimeout: time.Duration(instanceConfig.WriteTimeout) * time.Millisecond,
// ContextTimeoutEnabled: instanceConfig.ContextTimeoutEnabled,
PoolFIFO: instanceConfig.PoolFIFO,
PoolSize: instanceConfig.PoolSize,
PoolTimeout: time.Duration(instanceConfig.PoolTimeout) * time.Millisecond,
MinIdleConns: instanceConfig.MinIdleConn,
MaxRetries: instanceConfig.MaxRetries,
MinRetryBackoff: time.Duration(instanceConfig.MinRetryBackoff) * time.Millisecond,
MaxRetryBackoff: time.Duration(instanceConfig.MaxRetryBackoff) * time.Millisecond,
DialTimeout: time.Duration(instanceConfig.DialTimeout) * time.Millisecond,
ReadTimeout: time.Duration(instanceConfig.ReadTimeout) * time.Millisecond,
WriteTimeout: time.Duration(instanceConfig.WriteTimeout) * time.Millisecond,
ContextTimeoutEnabled: instanceConfig.ContextTimeoutEnabled,
PoolFIFO: instanceConfig.PoolFIFO,
PoolSize: instanceConfig.PoolSize,
PoolTimeout: time.Duration(instanceConfig.PoolTimeout) * time.Millisecond,
MinIdleConns: instanceConfig.MinIdleConn,
// MaxIdleConns: instanceConfig.MaxIdleConn,
// MaxActiveConns: instanceConfig.MaxActiveConn,
// ConnMaxIdleTime: time.Duration(instanceConfig.ConnMaxIdleTime) * time.Second,
+15
View File
@@ -32,3 +32,18 @@ func TestAddClientKeepsMasterAndSlaveSeparate(t *testing.T) {
_ = info.MasterClient().Close()
_ = info.SlaveClient().Close()
}
func TestNewClientPassesContextTimeoutEnabled(t *testing.T) {
client := &OwnClient{}
redisClient := client.newClient(&define.Options{
Addr: "127.0.0.1:6379",
ContextTimeoutEnabled: true,
})
t.Cleanup(func() {
_ = redisClient.Close()
})
if !redisClient.Options().ContextTimeoutEnabled {
t.Fatal("context timeout option was not passed to go-redis")
}
}