mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-24 08:38:45 +05:00
Add redis pipeline window and limit cfg opts
Set redisPoolPipelineWindow to control duration before pipeline flush (0 disables implicit pipelining) and redisPoolPipelineLimit for max commands per pipeline (0 means no limit, only time window applies).
This commit is contained in:
committed by
Dan Christian Bogos
parent
3666dea54e
commit
e0c05ecfa7
@@ -74,6 +74,10 @@ var (
|
||||
"The amount of wait time until timeout for reading operations")
|
||||
dbRedisWriteTimeout = cgrLoaderFlags.Duration(utils.RedisWriteTimeoutCfg, dfltCfg.DataDbCfg().Opts.RedisWriteTimeout,
|
||||
"The amount of wait time until timeout for writing operations")
|
||||
dbRedisPoolPipelineWindow = cgrLoaderFlags.Duration(utils.RedisPoolPipelineWindowCfg, dfltCfg.DataDbCfg().Opts.RedisPoolPipelineWindow,
|
||||
"Duration after which internal pipelines are flushed. Zero disables implicit pipelining.")
|
||||
dbRedisPoolPipelineLimit = cgrLoaderFlags.Int(utils.RedisPoolPipelineLimitCfg, dfltCfg.DataDbCfg().Opts.RedisPoolPipelineLimit,
|
||||
"Maximum number of commands that can be pipelined before flushing. Zero means no limit.")
|
||||
dbRedisTls = cgrLoaderFlags.Bool(utils.RedisTLSCfg, false, "Enable TLS when connecting to Redis")
|
||||
dbRedisClientCertificate = cgrLoaderFlags.String(utils.RedisClientCertificateCfg, utils.EmptyString, "Path to the client certificate")
|
||||
dbRedisClientKey = cgrLoaderFlags.String(utils.RedisClientKeyCfg, utils.EmptyString, "Path to the client key")
|
||||
@@ -189,6 +193,12 @@ func loadConfig() (ldrCfg *config.CGRConfig) {
|
||||
if *dbRedisWriteTimeout != dfltCfg.DataDbCfg().Opts.RedisWriteTimeout {
|
||||
ldrCfg.DataDbCfg().Opts.RedisWriteTimeout = *dbRedisWriteTimeout
|
||||
}
|
||||
if *dbRedisPoolPipelineWindow != dfltCfg.DataDbCfg().Opts.RedisPoolPipelineWindow {
|
||||
ldrCfg.DataDbCfg().Opts.RedisPoolPipelineWindow = *dbRedisPoolPipelineWindow
|
||||
}
|
||||
if *dbRedisPoolPipelineLimit != dfltCfg.DataDbCfg().Opts.RedisPoolPipelineLimit {
|
||||
ldrCfg.DataDbCfg().Opts.RedisPoolPipelineLimit = *dbRedisPoolPipelineLimit
|
||||
}
|
||||
if *dbQueryTimeout != dfltCfg.DataDbCfg().Opts.MongoQueryTimeout {
|
||||
ldrCfg.DataDbCfg().Opts.MongoQueryTimeout = *dbQueryTimeout
|
||||
}
|
||||
|
||||
@@ -67,6 +67,7 @@ func TestLoadConfig(t *testing.T) {
|
||||
RedisClusterSync: 5 * time.Second,
|
||||
RedisClusterOndownDelay: 0,
|
||||
RedisCluster: false,
|
||||
RedisPoolPipelineWindow: 150 * time.Microsecond,
|
||||
RedisTLS: false,
|
||||
},
|
||||
RmtConns: []string{},
|
||||
|
||||
@@ -79,6 +79,10 @@ var (
|
||||
"The amount of wait time until timeout for reading operations")
|
||||
dbRedisWriteTimeout = cgrMigratorFlags.Duration(utils.RedisWriteTimeoutCfg, dfltCfg.DataDbCfg().Opts.RedisWriteTimeout,
|
||||
"The amount of wait time until timeout for writing operations")
|
||||
dbRedisPoolPipelineWindow = cgrMigratorFlags.Duration(utils.RedisPoolPipelineWindowCfg, dfltCfg.DataDbCfg().Opts.RedisPoolPipelineWindow,
|
||||
"Duration after which internal pipelines are flushed. Zero disables implicit pipelining.")
|
||||
dbRedisPoolPipelineLimit = cgrMigratorFlags.Int(utils.RedisPoolPipelineLimitCfg, dfltCfg.DataDbCfg().Opts.RedisPoolPipelineLimit,
|
||||
"Maximum number of commands that can be pipelined before flushing. Zero means no limit.")
|
||||
dbRedisTls = cgrMigratorFlags.Bool(utils.RedisTLSCfg, false, "Enable TLS when connecting to Redis")
|
||||
dbRedisClientCertificate = cgrMigratorFlags.String(utils.RedisClientCertificateCfg, utils.EmptyString, "Path to the client certificate")
|
||||
dbRedisClientKey = cgrMigratorFlags.String(utils.RedisClientKeyCfg, utils.EmptyString, "Path to the client key")
|
||||
@@ -194,6 +198,12 @@ func main() {
|
||||
if *dbRedisWriteTimeout != dfltCfg.DataDbCfg().Opts.RedisWriteTimeout {
|
||||
mgrCfg.DataDbCfg().Opts.RedisWriteTimeout = *dbRedisWriteTimeout
|
||||
}
|
||||
if *dbRedisPoolPipelineWindow != dfltCfg.DataDbCfg().Opts.RedisPoolPipelineWindow {
|
||||
mgrCfg.DataDbCfg().Opts.RedisPoolPipelineWindow = *dbRedisPoolPipelineWindow
|
||||
}
|
||||
if *dbRedisPoolPipelineLimit != dfltCfg.DataDbCfg().Opts.RedisPoolPipelineLimit {
|
||||
mgrCfg.DataDbCfg().Opts.RedisPoolPipelineLimit = *dbRedisPoolPipelineLimit
|
||||
}
|
||||
if *dbRedisTls != dfltCfg.DataDbCfg().Opts.RedisTLS {
|
||||
mgrCfg.DataDbCfg().Opts.RedisTLS = *dbRedisTls
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user