代码拉取完成,页面将自动刷新
// 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
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。