package scheduler import ( "log" "photowall/internal/service" "time" ) // StartCleanup 启动过期班级清理定时任务。 // 每小时检查一次,超过 audit_deadline 仍未通过审核的班级自动删除。 func StartCleanup(adminSvc *service.AdminService) { go func() { // 启动后延迟 1 分钟先跑一次,避免服务刚启动就堆积 time.Sleep(1 * time.Minute) runCleanup(adminSvc) ticker := time.NewTicker(1 * time.Hour) defer ticker.Stop() for range ticker.C { runCleanup(adminSvc) } }() log.Println("[scheduler] expired class cleanup started (runs hourly)") } func runCleanup(adminSvc *service.AdminService) { count, err := adminSvc.CleanupExpired() if err != nil { log.Printf("[scheduler] cleanup error: %v", err) return } if count > 0 { log.Printf("[scheduler] auto-deleted %d expired classes", count) } }