Files
FileRelay/internal/task/cleaner.go
2026-01-28 20:44:34 +08:00

40 lines
634 B
Go

package task
import (
"FileRelay/internal/service"
"context"
"log/slog"
"time"
)
type Cleaner struct {
batchService *service.BatchService
}
func NewCleaner() *Cleaner {
return &Cleaner{
batchService: service.NewBatchService(),
}
}
func (c *Cleaner) Start(ctx context.Context) {
ticker := time.NewTicker(1 * time.Hour)
defer ticker.Stop()
for {
select {
case <-ctx.Done():
return
case <-ticker.C:
c.Clean()
}
}
}
func (c *Cleaner) Clean() {
slog.Info("Running cleanup task")
if err := c.batchService.Cleanup(context.Background()); err != nil {
slog.Error("Error during cleanup", "error", err)
}
}