Files
go-sip/cmd/sip-go-agent/agent_cleanup.go
T

27 lines
785 B
Go

package main
import (
"context"
"log/slog"
"git.ipao.vip/rogee/go-sip/internal/agent"
"git.ipao.vip/rogee/go-sip/internal/daily"
)
// This owns only local delivered-file cleanup, never RPC/cloud recovery.
func startAgentMidnightCleanup(parent context.Context, root string) func() {
ctx, cancel := context.WithCancel(parent)
done := make(chan struct{})
go func() {
defer close(done)
if err := daily.Run(ctx, func(ctx context.Context) error {
count, err := (&agent.RecordingRecovery{Root: root}).CleanupDelivered(ctx)
slog.InfoContext(ctx, "Agent midnight cleanup finished", "completed_recordings", count, "error", err)
return err
}); err != nil {
slog.Error("Agent midnight cleanup timer failed", "error", err)
}
}()
return func() { cancel(); <-done }
}