Add env vars for max conn lifetime and idle time for pgx (#3096)

* add env vars for max conn lifetime and idele time for pgx

* add doc
This commit is contained in:
Mohammed Nafees
2026-02-24 21:54:09 +01:00
committed by GitHub
parent 444a335c18
commit f3ec9597a6
3 changed files with 41 additions and 32 deletions
+5
View File
@@ -29,6 +29,9 @@ type ConfigFile struct {
MaxQueueConns int `mapstructure:"maxQueueConns" json:"maxQueueConns,omitempty" default:"50"`
MinQueueConns int `mapstructure:"minQueueConns" json:"minQueueConns,omitempty" default:"10"`
MaxConnLifetime time.Duration `mapstructure:"maxConnLifetime" json:"maxConnLifetime,omitempty" default:"15m"`
MaxConnIdleTime time.Duration `mapstructure:"maxConnIdleTime" json:"maxConnIdleTime,omitempty" default:"1m"`
Seed SeedConfigFile `mapstructure:"seed" json:"seed,omitempty"`
Logger shared.LoggerConfigFile `mapstructure:"logger" json:"logger,omitempty"`
@@ -81,6 +84,8 @@ func BindAllEnv(v *viper.Viper) {
_ = v.BindEnv("minConns", "DATABASE_MIN_CONNS")
_ = v.BindEnv("maxQueueConns", "DATABASE_MAX_QUEUE_CONNS")
_ = v.BindEnv("minQueueConns", "DATABASE_MIN_QUEUE_CONNS")
_ = v.BindEnv("maxConnLifetime", "DATABASE_MAX_CONN_LIFETIME")
_ = v.BindEnv("maxConnIdleTime", "DATABASE_MAX_CONN_IDLE_TIME")
_ = v.BindEnv("readReplicaEnabled", "READ_REPLICA_ENABLED")
_ = v.BindEnv("readReplicaDatabaseUrl", "READ_REPLICA_DATABASE_URL")
+4 -2
View File
@@ -190,7 +190,8 @@ func (c *ConfigLoader) InitDataLayer() (res *database.Layer, err error) {
config.MinConns = int32(cf.MinConns) // nolint: gosec
}
config.MaxConnLifetime = 15 * 60 * time.Second
config.MaxConnLifetime = cf.MaxConnLifetime
config.MaxConnIdleTime = cf.MaxConnIdleTime
// Check database instance timezone if enforcement is enabled
if cf.EnforceUTCTimezone {
@@ -242,7 +243,8 @@ func (c *ConfigLoader) InitDataLayer() (res *database.Layer, err error) {
readReplicaConfig.MinConns = int32(cf.ReadReplicaMinConns) // nolint: gosec
}
readReplicaConfig.MaxConnLifetime = 15 * 60 * time.Second
readReplicaConfig.MaxConnLifetime = cf.MaxConnLifetime
readReplicaConfig.MaxConnIdleTime = cf.MaxConnIdleTime
readReplicaConfig.ConnConfig.Tracer = otelpgx.NewTracer()
// Check read replica database instance timezone if enforcement is enabled