feat: Implement a new monitoring system with auto-add capabilities and a dedicated management UI.
This commit is contained in:
@@ -34,15 +34,24 @@ func StartAutoAddService() {
|
||||
logger.Info("自动补号检查器已启动(需在前端开启开关)", "", "auto-add")
|
||||
|
||||
go func() {
|
||||
ticker := time.NewTicker(60 * time.Second) // 每分钟检查一次
|
||||
defer ticker.Stop()
|
||||
// 默认检查间隔 60 秒
|
||||
checkInterval := 60
|
||||
|
||||
for {
|
||||
// 动态读取检查间隔配置
|
||||
if database.Instance != nil {
|
||||
if val, _ := database.Instance.GetConfig("monitor_check_interval"); val != "" {
|
||||
if v, err := strconv.Atoi(val); err == nil && v >= 10 {
|
||||
checkInterval = v
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
select {
|
||||
case <-autoAddStopChan:
|
||||
logger.Info("自动补号检查器已停止", "", "auto-add")
|
||||
return
|
||||
case <-ticker.C:
|
||||
case <-time.After(time.Duration(checkInterval) * time.Second):
|
||||
checkAndAutoAdd()
|
||||
}
|
||||
}
|
||||
@@ -72,6 +81,7 @@ func checkAndAutoAdd() {
|
||||
autoAddEnabled = true
|
||||
}
|
||||
if !autoAddEnabled {
|
||||
// 自动补号未开启,静默返回
|
||||
return
|
||||
}
|
||||
|
||||
@@ -83,7 +93,11 @@ func checkAndAutoAdd() {
|
||||
}
|
||||
}
|
||||
|
||||
if time.Since(lastAutoAddTime).Seconds() < float64(minInterval) {
|
||||
elapsed := time.Since(lastAutoAddTime).Seconds()
|
||||
if elapsed < float64(minInterval) {
|
||||
// 距离上次补号时间不足,显示等待信息
|
||||
remaining := float64(minInterval) - elapsed
|
||||
logger.Info(fmt.Sprintf("自动补号: 等待中 (还需 %.0f 秒)", remaining), "", "auto-add")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -110,6 +124,7 @@ func checkAndAutoAdd() {
|
||||
|
||||
deficit := target - current
|
||||
if deficit <= 0 {
|
||||
logger.Info(fmt.Sprintf("自动补号: 当前 %d >= 目标 %d, 无需补号", current, target), "", "auto-add")
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user