Fix CPU usage hopefully
ci/woodpecker/push/build Pipeline was successful Details

This commit is contained in:
Jan Zípek 2026-04-07 17:40:44 +02:00
parent 9531bd95de
commit a37b641a9b
Signed by: kamen
GPG Key ID: A17882625B33AC31
2 changed files with 12 additions and 5 deletions

View File

@ -6,16 +6,20 @@ import (
) )
func (s *Server) StartAlerts() { func (s *Server) StartAlerts() {
ticker := time.NewTicker(time.Second * 1)
go func() { go func() {
for { for {
interval := time.Second * 5
startedAt := time.Now()
err := s.Services.AlertsEvaluator.EvaluateAlerts() err := s.Services.AlertsEvaluator.EvaluateAlerts()
if err != nil { if err != nil {
fmt.Println("Error evaluating alerts: ", err) fmt.Println("Error evaluating alerts: ", err)
} }
<-ticker.C elapsed := time.Since(startedAt)
if elapsed < interval {
time.Sleep(interval - elapsed)
}
} }
}() }()
} }

View File

@ -157,8 +157,11 @@ func (s *AlertsEvaluatorService) EvaluateAlert(alert *models.AlertItem) error {
} }
} }
if newStatus != alert.LastStatus || newStatus == models.AlertStatusOk { if newStatus != alert.LastStatus {
s.ctx.DB.Exec("UPDATE alerts SET last_status = ?, last_status_at = ? WHERE id = ?", newStatus, time.Now().Unix(), alert.Id) _, err := s.ctx.DB.Exec("UPDATE alerts SET last_status = ?, last_status_at = ? WHERE id = ?", newStatus, time.Now().Unix(), alert.Id)
if err != nil {
return fmt.Errorf("error updating alert status: %v", err)
}
if newStatus == models.AlertStatusAlerting || newStatus == models.AlertStatusOk { if newStatus == models.AlertStatusAlerting || newStatus == models.AlertStatusOk {
sensor, err := s.ctx.Services.Sensors.GetById(sensorId) sensor, err := s.ctx.Services.Sensors.GetById(sensorId)