Q58Bot/service/scheduled_tasks.go

38 lines
727 B
Go

package service
import (
"log"
"time"
"github.com/woodchen-ink/Q58Bot/core"
)
func StartScheduledTasks() {
log.Printf("启动定时任务")
go periodicCleanup()
log.Printf("过期链接清理任务已启动")
}
func periodicCleanup() {
ticker := time.NewTicker(24 * time.Hour) // 每天执行一次清理
defer ticker.Stop()
// 立即执行一次清理
cleanupExpiredLinks()
// 使用 for range 替代 for { select {} }
for range ticker.C {
cleanupExpiredLinks()
}
}
func cleanupExpiredLinks() {
rowsAffected, err := core.DB.CleanupExpiredLinks()
if err != nil {
log.Printf("清理过期链接时发生错误: %v", err)
} else {
log.Printf("已成功清理 %d 条过期链接", rowsAffected)
}
}