47 lines
1.2 KiB
Go
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
|
|
}
|
|
}
|