@@ -30,11 +30,10 @@ const (
3030
3131 addJobSuccessStatus = "success"
3232 addJobFailedStatus = "failed"
33-
34- redisMemoryUsageWatermark = 0.8 // used_memory / max_memory
3533)
3634
3735type Manager struct {
36+ cfg * config.Config
3837 wg sync.WaitGroup
3938 mu sync.Mutex
4039 pools map [string ]engine.Engine
@@ -76,6 +75,7 @@ func NewManger(cfg *config.Config) (*Manager, error) {
7675 return nil , fmt .Errorf ("create redis client err: %w" , err )
7776 }
7877 return & Manager {
78+ cfg : cfg ,
7979 redisCli : redisCli ,
8080 storage : storage ,
8181 pools : make (map [string ]engine.Engine ),
@@ -87,7 +87,7 @@ func NewManger(cfg *config.Config) (*Manager, error) {
8787func (m * Manager ) PumpFn (name string , pool engine.Engine , threshold int64 ) func () bool {
8888 return func () bool {
8989 logger := log .Get ().WithField ("pool" , name )
90- if isHighRedisMemUsage (m .redisCli ) {
90+ if isHighRedisMemUsage (m .redisCli , m . cfg . SecondaryStorage . HighRedisMemoryWatermark ) {
9191 logger .Error ("High redis usage, storage stops pumping data" )
9292 return false
9393 }
@@ -183,7 +183,10 @@ func (m *Manager) Shutdown() {
183183 m .storage .Close ()
184184}
185185
186- func isHighRedisMemUsage (cli * redis.Client ) bool {
186+ func isHighRedisMemUsage (cli * redis.Client , redisMemoryUsageWatermark float64 ) bool {
187+ if redisMemoryUsageWatermark == 0 || redisMemoryUsageWatermark >= 1 {
188+ return false
189+ }
187190 memoryInfo , err := cli .Info (context .TODO (), "memory" ).Result ()
188191 if err != nil {
189192 return false
0 commit comments