diff --git a/main.go b/main.go index 474a2a2..e388712 100644 --- a/main.go +++ b/main.go @@ -19,11 +19,11 @@ func main() { go binance.RunBinance() + // 启动定期任务 + go service.StartScheduledTasks() + err = service.RunMessageHandler() if err != nil { log.Fatalf("Error in RunMessageHandler: %v", err) } - - // 启动定期任务 - service.StartScheduledTasks() } diff --git a/service/scheduled_tasks.go b/service/scheduled_tasks.go index 61cb2be..3033907 100644 --- a/service/scheduled_tasks.go +++ b/service/scheduled_tasks.go @@ -18,15 +18,20 @@ func periodicCleanup() { ticker := time.NewTicker(24 * time.Hour) // 每天执行一次清理 defer ticker.Stop() - for { - select { - case <-ticker.C: - err := core.DB.CleanupExpiredLinks() - if err != nil { - log.Printf("清理过期链接时发生错误: %v", err) - } else { - log.Println("已成功清理过期链接") - } - } + // 立即执行一次清理 + cleanupExpiredLinks() + + // 使用 for range 替代 for { select {} } + for range ticker.C { + cleanupExpiredLinks() + } +} + +func cleanupExpiredLinks() { + err := core.DB.CleanupExpiredLinks() + if err != nil { + log.Printf("清理过期链接时发生错误: %v", err) + } else { + log.Println("已成功清理过期链接") } }