Files
shangbangbang/internal/tasks/cronTask.go
T
solosw 99b11b04e4 1.0
2026-01-05 14:11:34 +08:00

47 lines
1.2 KiB
Go

package tasks
import (
"log"
"github.com/robfig/cron/v3"
)
var CronTask *cron.Cron
// InitCronTasks 初始化所有定时任务
func InitCronTasks() {
log.Println("初始化定时任务...")
CronTask = cron.New()
// 添加定时任务:每15分钟检查一次未付款订单
_, err := CronTask.AddFunc("*/15 * * * *", AutoCancelUnpaidOrders)
if err != nil {
log.Printf("添加自动取消订单任务失败: %v", err)
} else {
log.Println("已添加自动取消订单任务,每15分钟执行一次")
}
go AutoCancelUnpaidOrders()
// 添加定时任务:每小时检查一次用户过期状态
_, err = CronTask.AddFunc("0 * * * *", CheckUserExpiry)
if err != nil {
log.Printf("添加用户过期检查任务失败: %v", err)
} else {
log.Println("已添加用户过期检查任务,每小时执行一次")
}
// 立即执行一次用户过期检查
go CheckUserExpiry()
// 启动所有定时任务
CronTask.Start()
log.Println("所有定时任务已启动")
}
// 添加单个定时任务(保留原有函数以兼容旧代码)
func addTask(cronn string, work func()) {
_, err := CronTask.AddFunc(cronn, work)
if err != nil {
log.Printf("添加定时任务失败: %v", err)
return
}
}