优化定时任务

This commit is contained in:
xh
2026-01-19 22:58:18 +08:00
parent 9c2eb9257e
commit 2a3b538719
4 changed files with 56 additions and 43 deletions
+2 -2
View File
@@ -6,7 +6,7 @@
*.dll
*.so
*.dylib
__debug_bin.exe*
# Test binary, built with `go test -c`
*.test
@@ -61,4 +61,4 @@ main
tmp
dist/
uploads/
./logs
/logs/
+50
View File
@@ -0,0 +1,50 @@
package corn
import (
"x_admin/app/schema"
"x_admin/app/service/cornService"
"x_admin/core"
)
var DynamicTasks = NewCronManager()
// 从数据库加载任务
func loadTasks() []cornService.RunTask {
var Status = core.NullInt{}
Status.SetValue(1)
allList, err := cornService.SystemCornService.ListAll(schema.SystemCornListReq{
Status: Status,
})
if err != nil {
core.Logger.Error("加载任务失败", err)
return nil
}
var RunTaskList = []cornService.RunTask{} // 运行中的任务列表
for _, task := range allList {
if task.Status.ValueOrZero() == 0 {
continue
}
for _, info := range cornService.TaskInfoList {
if task.TaskCode.ValueOrZero() == info.TaskCode {
RunTaskList = append(RunTaskList, cornService.RunTask{
TaskId: task.Id,
TaskName: task.TaskName.ValueOrZero(),
CronExpr: task.CornExpr.ValueOrZero(),
Task: &info,
})
break
}
}
}
return RunTaskList
}
func init() {
// 动态任务管理器
DynamicTasks.Start()
}
@@ -2,13 +2,13 @@ package corn
import (
"time"
"x_admin/app/schema"
"x_admin/app/service/cornService"
"x_admin/core"
"x_admin/util"
)
// robfig/cron 基础使用示例
//
// func init() {
// c := cron.New(cron.WithSeconds())
// c.AddFunc("*/5 * * * * *", func() {
@@ -19,48 +19,11 @@ import (
// // 启动定时任务
// c.Start()
// }
// 从数据库加载任务
func loadTasks() []cornService.RunTask {
var Status = core.NullInt{}
Status.SetValue(1)
allList, err := cornService.SystemCornService.ListAll(schema.SystemCornListReq{
Status: Status,
})
if err != nil {
core.Logger.Error("加载任务失败", err)
return nil
}
var RunTaskList = []cornService.RunTask{} // 运行中的任务列表
for _, task := range allList {
if task.Status.ValueOrZero() == 0 {
continue
}
for _, info := range cornService.TaskInfoList {
if task.TaskCode.ValueOrZero() == info.TaskCode {
RunTaskList = append(RunTaskList, cornService.RunTask{
TaskId: task.Id,
TaskName: task.TaskName.ValueOrZero(),
CronExpr: task.CornExpr.ValueOrZero(),
Task: &info,
})
break
}
}
}
return RunTaskList
}
var FixedTasks = NewCronManager()
func init() {
// 动态任务管理器
DynamicTasks := NewCronManager()
DynamicTasks.Start()
// 固定任务管理器
FixedTasks := NewCronManager()
FixedTasks.Start()
// 每10秒执行一次拉取定时任务
@@ -71,7 +34,7 @@ func init() {
TaskDesc: "拉取定时任务",
TaskFunc: func() {
RunTaskList := loadTasks()
core.Logger.Info("拉取到的任务数量: ", len(RunTaskList))
core.Logger.Debug("拉取到的任务数量: ", len(RunTaskList))
if err := DynamicTasks.AddTasksBeforeRemoveAll(RunTaskList); err != nil {
core.Logger.Error("添加任务失败", err)
}