Files
ITWorx-Pulse-Public/internal/alertcontrol/runner.go
T
ITWorx Pulse release export bd774932d5
Public source validation / validate (push) Failing after 3m8s
Publish ITWorx Pulse source
2026-09-03 02:09:19 +02:00

27 lines
505 B
Go

package alertcontrol
import (
"context"
"log/slog"
"time"
)
func RunExpiryLoop(ctx context.Context, store Store, interval time.Duration, logger *slog.Logger) {
if store == nil || interval <= 0 {
return
}
ticker := time.NewTicker(interval)
defer ticker.Stop()
job := ExpiryJob{Store: store}
for {
select {
case <-ctx.Done():
return
case <-ticker.C:
if _, err := job.Run(ctx); err != nil && logger != nil {
logger.Warn("alert control expiry failed", "error", err)
}
}
}
}