go-admingo-admin
  • 指南
  • 开发
    • 进阶
    • 指令
  • 前端
  • 高阶
  • 授权
  • 帮助
  • GitHub
  • Changelog
⌘ K
标准写法
标准模块开发
服务端基础
后端目录结构
后端配置文件
启动后端服务
前端基础
前端目录结构
前端配置文件
启动前端服务
开发模式
Actions 模式
常规模式
第一个接口
分层开发
API 层
Service 层
DTO 定义
Model 定义
路由注册
多环境配置
数据库表规范
数据权限
统一响应
代码生成
生成前配置
生成业务代码
一键生成菜单
菜单绑定接口
配置角色权限
验证功能
用 AI 生成代码
进阶能力
Runtime 核心 API
认证与鉴权
日志
请求追踪
缓存
队列
文件上传
限流
定时任务
Air 热加载
Swagger 文档
代码生成工具
最后更新时间:
Open-source MIT Licensed | Copyright © 2020-present
Powered by go-admin-team

TABLE OF CONTENTS

‌
‌
‌
‌

定时任务

系统目前是支持两种定时类型,一种是函数类型,一种是接口类型,来支持多样的业务;

HttpJob 接口类型

接口类型是比较简单的,在系统中配置好调用的接口地址、调用周期即可;

ExecJob 函数类型

函数类型是需要使用代码来完成的业务,这个时候我们需要使用函数类型;

系统中给出了一个示例:

jobs目录中可以看到examples.go的文件,这里边是给出的一个示例代码;

下面我们针对示例代码做一下介绍:

第一步:需要创建一个结构体,这个结构体需要实现JobCore接口;如:ExamplesOne,里边实现了Exec方法;

go
type ExamplesOne struct {
}
func (t ExamplesOne) Exec(arg interface{}) error {
str := "JobCore ExamplesOne exec success"
// TODO: 这里需要注意 Examples 传入参数是 string 所以 arg.(string);请根据对应的类型进行转化;
switch arg.(type) {
case string:
if arg.(string) != "" {
logger.Info(str, arg.(string))
} else {
logger.Warn(str, "arg is nil")
}
break
}
return nil
}

第二步:需要在InitJob中注册这个结构体;如:ExamplesOne;需要将结构体的名称作为key,结构体作为value;这样重新启动项目,就可以在系统中进行配置并使用了;

go
func InitJob() {
jobList = map[string]JobsExec{
"ExamplesOne": ExamplesOne{},
// ...
}
}

WARNING

从哪里获得帮助:

如果你在阅读本教程的过程中有任何疑问,可以前往提交建议。