mirror of
https://git.fightbot.fun/hxuanyu/FileRelay.git
synced 2026-02-15 06:01:43 +08:00
40 lines
634 B
Go
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)
|
|
}
|
|
}
|