Refactor scheduled tasks to run concurrently and improve cleanup logic

This commit is contained in:
wood chen 2024-10-20 22:03:35 +08:00
parent dd6aaad112
commit e3cfd8e4bc
2 changed files with 18 additions and 13 deletions

View File

@ -19,11 +19,11 @@ func main() {
go binance.RunBinance() go binance.RunBinance()
// 启动定期任务
go service.StartScheduledTasks()
err = service.RunMessageHandler() err = service.RunMessageHandler()
if err != nil { if err != nil {
log.Fatalf("Error in RunMessageHandler: %v", err) log.Fatalf("Error in RunMessageHandler: %v", err)
} }
// 启动定期任务
service.StartScheduledTasks()
} }

View File

@ -18,15 +18,20 @@ func periodicCleanup() {
ticker := time.NewTicker(24 * time.Hour) // 每天执行一次清理 ticker := time.NewTicker(24 * time.Hour) // 每天执行一次清理
defer ticker.Stop() defer ticker.Stop()
for { // 立即执行一次清理
select { cleanupExpiredLinks()
case <-ticker.C:
err := core.DB.CleanupExpiredLinks() // 使用 for range 替代 for { select {} }
if err != nil { for range ticker.C {
log.Printf("清理过期链接时发生错误: %v", err) cleanupExpiredLinks()
} else { }
log.Println("已成功清理过期链接") }
}
} func cleanupExpiredLinks() {
err := core.DB.CleanupExpiredLinks()
if err != nil {
log.Printf("清理过期链接时发生错误: %v", err)
} else {
log.Println("已成功清理过期链接")
} }
} }