From 65607751d58a1d02c7019a28b00aabae0ff03442 Mon Sep 17 00:00:00 2001 From: Tetrergeru Date: Wed, 5 Feb 2025 17:43:26 +0100 Subject: [PATCH 1/2] Pass redis connection pool settings to config --- cmd/config.go | 4 ++++ database/redis/config.go | 3 +++ database/redis/database.go | 3 +++ 3 files changed, 10 insertions(+) diff --git a/cmd/config.go b/cmd/config.go index c81bb06e8..0b28a2098 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -62,6 +62,10 @@ type RedisConfig struct { // Allows routing read-only commands to the **random** master or slave node. // It automatically enables ReadOnly. RouteRandomly bool `yaml:"route_randomly"` + // Time to await for a client from client pool. Default value is 4s. + PoolTimeout string `yaml:"pool_timeout"` + // Size of client pool. Default value is 5 * GOMAXPROCS. + PoolSize int `yaml:"pool_size"` } // GetSettings returns redis config parsed from moira config files. diff --git a/database/redis/config.go b/database/redis/config.go index b5c969213..201a892f8 100644 --- a/database/redis/config.go +++ b/database/redis/config.go @@ -23,6 +23,9 @@ type DatabaseConfig struct { MinRetryBackoff time.Duration MaxRetryBackoff time.Duration + PoolTimeout time.Duration + PoolSize int + ReadOnly bool RouteByLatency bool RouteRandomly bool diff --git a/database/redis/database.go b/database/redis/database.go index e73c01750..05e54d712 100644 --- a/database/redis/database.go +++ b/database/redis/database.go @@ -70,6 +70,9 @@ func NewDatabase(logger moira.Logger, config DatabaseConfig, nh NotificationHist MinRetryBackoff: config.MinRetryBackoff, MaxRetryBackoff: config.MaxRetryBackoff, + PoolTimeout: config.PoolTimeout, + PoolSize: config.PoolSize, + ReadOnly: config.ReadOnly, RouteByLatency: config.RouteByLatency, RouteRandomly: config.RouteRandomly, From 2a7e4a64b0adf76305a4529beb74603f4ab333a7 Mon Sep 17 00:00:00 2001 From: Tetrergeru Date: Mon, 10 Feb 2025 16:51:49 +0100 Subject: [PATCH 2/2] Fix parameters passing --- cmd/config.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmd/config.go b/cmd/config.go index 0b28a2098..83b5d440c 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -88,6 +88,8 @@ func (config *RedisConfig) GetSettings() redis.DatabaseConfig { ReadOnly: config.ReadOnly, RouteByLatency: config.RouteByLatency, RouteRandomly: config.RouteRandomly, + PoolTimeout: to.Duration(config.PoolTimeout), + PoolSize: config.PoolSize, } }