96 lines
2.9 KiB
Go
96 lines
2.9 KiB
Go
package initialize
|
||
|
||
import (
|
||
"fmt"
|
||
"git.echol.cn/loser/lckt/task"
|
||
|
||
"github.com/robfig/cron/v3"
|
||
|
||
"git.echol.cn/loser/lckt/global"
|
||
)
|
||
|
||
func Timer() {
|
||
go func() {
|
||
var option []cron.Option
|
||
option = append(option, cron.WithSeconds())
|
||
// 清理DB定时任务
|
||
_, err := global.GVA_Timer.AddTaskByFunc("ClearDB", "@daily", func() {
|
||
err := task.ClearTable(global.GVA_DB) // 定时任务方法定在task文件包中
|
||
if err != nil {
|
||
fmt.Println("timer error:", err)
|
||
}
|
||
}, "定时清理数据库【日志,黑名单】内容", option...)
|
||
if err != nil {
|
||
fmt.Println("add timer error:", err)
|
||
}
|
||
|
||
// 定时清理过期VIP用户
|
||
_, err = global.GVA_Timer.AddTaskByFunc("ClearVip", "@daily", func() {
|
||
err2 := task.CheckVip(global.GVA_DB)
|
||
if err2 != nil {
|
||
fmt.Println("清理过期VIP定时任务失败:", err2)
|
||
}
|
||
}, "定时清理过期VIP日志内容:", option...)
|
||
if err != nil {
|
||
fmt.Println("add timer error:", err)
|
||
}
|
||
|
||
// 定时发布文章
|
||
fmt.Println("注册定时任务: PublishArticles")
|
||
_, err = global.GVA_Timer.AddTaskByFunc("PublishArticles", "0 0/1 * * * ?", func() {
|
||
fmt.Println("执行定时任务: PublishArticles")
|
||
err3 := task.PublishArticles(global.GVA_DB)
|
||
if err3 != nil {
|
||
fmt.Println("定时发布文章失败:", err3)
|
||
}
|
||
}, "定时发布文章任务,每分钟检查一次", option...)
|
||
if err != nil {
|
||
fmt.Println("add timer error:", err)
|
||
}
|
||
|
||
// 清理超时订单
|
||
_, err = global.GVA_Timer.AddTaskByFunc("ClearExpiredOrders", "0 0/5 * * * ?", func() {
|
||
err4 := task.ClearExpiredOrders(global.GVA_DB)
|
||
if err4 != nil {
|
||
fmt.Println("清理超时订单失败:", err4)
|
||
}
|
||
}, "定时清理超时订单任务,每5分钟检查一次", option...)
|
||
if err != nil {
|
||
fmt.Println("add timer error:", err)
|
||
}
|
||
|
||
// 定时检查讲师VIP是否过期
|
||
_, err = global.GVA_Timer.AddTaskByFunc("CheckTeacherVip", "0 0/5 * * * ?", func() {
|
||
err5 := task.CheckTeacherVip(global.GVA_DB)
|
||
if err5 != nil {
|
||
fmt.Println("清理过期讲师VIP定时任务失败:", err5)
|
||
}
|
||
}, "定时清理过期讲师VIP日志内容:", option...)
|
||
if err != nil {
|
||
fmt.Println("add timer error:", err)
|
||
}
|
||
|
||
// 清理机器人
|
||
_, err = global.GVA_Timer.AddTaskByFunc("ClearBot", "0 0 22 * * ?", func() {
|
||
err6 := task.ClearBot(global.GVA_DB)
|
||
if err6 != nil {
|
||
fmt.Println("清理机器人定时任务失败:", err6)
|
||
}
|
||
}, "定时清理机器人日志内容:", option...)
|
||
if err != nil {
|
||
fmt.Println("add timer error:", err)
|
||
}
|
||
|
||
// 每天21:20 将所有文章设为免费
|
||
_, err = global.GVA_Timer.AddTaskByFunc("SetArticleFree", "0 20 21 * * ?", func() {
|
||
err7 := task.SetArticleFree(global.GVA_DB)
|
||
if err7 != nil {
|
||
fmt.Println("将文章设为免费定时任务失败:", err7)
|
||
}
|
||
}, "将所有文章设为免费", option...)
|
||
if err != nil {
|
||
fmt.Println("add timer error:", err)
|
||
}
|
||
}()
|
||
}
|