1 Star 1 Fork 0

linngc / center.gf

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
job.go 1.52 KB
一键复制 编辑 原始数据 按行查看 历史
linngc 提交于 2023-08-21 13:42 . add:添加定时任务执行日志记录
// Package job
// @Link https://gitee.com/linngc/webos.gf
// @Copyright Copyright (c) 2022 webos CLI
// @Author linngc
// @License
// @title 定时任务
//
package job
import (
"context"
service "gitee.com/linngc/center.gf/internal/service/platform/system/basic"
"gitee.com/linngc/center.gf/internal/service/platform/system/datalog"
)
var (
SysJob = cSysJob{}
)
type cSysJob struct{}
// Initialize 自定义定时任务
// 定时任务-gcron 与 定时器-gtimer 区别:
// 1.gtimer属于高性能模块,是框架核心模块,构建任何定时任务的基础,任何方法操作耗时均在纳秒级别。
// 2.gtimer可适用于任何的定时任务场景中,例如: TCP通信、游戏开发等场景。
// 3.gcron支持经典的crontab形式的定时任务语法,最小时间设定间隔为秒。
// 4.gcron底层实现基于gtimer。
func (c *cSysJob) Initialize(ctx context.Context) error {
entities, err := service.SysJob().AllList(context.TODO())
if err != nil || entities == nil {
return err
}
for _, entity := range entities {
if entity.Available != 0 {
continue
}
jobId := entity.Id
jobTag := entity.JobTag
datalog.SysJobLog().Begin(ctx, jobId, "[初始化]定时任务执行[开始]")
if "SysWeather" == jobTag {
c.jobWeather(ctx, jobId, jobTag, entity.Cron)
} else if "LogClear(" == jobTag {
c.jobLogClear(ctx, jobId, jobTag, entity.Cron)
} else {
c.addDemo(ctx, jobId, jobTag, entity.Cron)
}
datalog.SysJobLog().End(ctx, jobId, "[初始化]定时任务执行[开始]")
}
return nil
}
Go
1
https://gitee.com/linngc/center.gf.git
git@gitee.com:linngc/center.gf.git
linngc
center.gf
center.gf
v0.2.12

搜索帮助