增加定时任务 处理异常

This commit is contained in:
2024-08-30 11:55:19 +08:00
parent aa3f9e8711
commit bfb284c4cc
30 changed files with 945 additions and 336 deletions

44
core/cron/crontab.go Normal file
View File

@@ -0,0 +1,44 @@
package cron
import (
"energy-management-system/utils"
"energy-management-system/utils/recovery"
"fmt"
"github.com/robfig/cron/v3"
"reflect"
"runtime"
)
var servers server
type server struct {
Cron []string
Func []func()
}
func (c *server) register(cron string, f func()) {
c.Cron = append(c.Cron, cron)
c.Func = append(c.Func, f)
}
func CronRun() {
c := cron.New()
for k, v := range servers.Cron {
eid, err := c.AddFunc(v, wrap(servers.Func[k]))
fmt.Println("定时任务:", eid, "添加成功")
utils.Exit(err, "添加定时器错误:")
}
c.Start()
}
func wrap(f func()) func() {
return func() {
defer recovery.CronRecovery(runtime.FuncForPC(reflect.ValueOf(f).Pointer()).Name())
f()
}
}
// Register 参数规则s m h d m w函数
func Register(rule string, f func()) {
servers.register(rule, f)
}