package timer import ( "fmt" "math/rand" "time" "github.com/toolkits/pkg/logger" "github.com/didi/nightingale/v5/models" ) // CleanExpireMute 清理过期的告警屏蔽 // 1. mute表:如果屏蔽结束时间小于当前时间,说明已经过了屏蔽时间了,这条屏蔽记录就可以被干掉 // 2. resource表:也有个屏蔽结束时间,需要和mute表做相同的判断和清理逻辑 func CleanExpireMute() { go loopCleanExpireMute() } func loopCleanExpireMute() { randtime := rand.Intn(2000) fmt.Printf("timer: clean expire mute: random sleep %dms\n", randtime) time.Sleep(time.Duration(randtime) * time.Millisecond) interval := time.Duration(10) * time.Second for { time.Sleep(interval) cleanExpireMute() } } func cleanExpireMute() { err := models.MuteCleanExpire() if err != nil { logger.Warningf("MuteCleanExpire fail: %v", err) } } func CleanExpireResource() { go loopCleanExpireResource() } func loopCleanExpireResource() { randtime := rand.Intn(2000) fmt.Printf("timer: clean expire resource: random sleep %dms\n", randtime) time.Sleep(time.Duration(randtime) * time.Millisecond) interval := time.Duration(10) * time.Second for { time.Sleep(interval) cleanExpireResource() } } func cleanExpireResource() { err := models.ResourceCleanExpire() if err != nil { logger.Warningf("ResourceCleanExpire fail: %v", err) } }