go-admingo-admin
  • GitHub
  • Changelog
⌘ K
服务端基础
目录结构
配置文件
服务启动
前端基础
目录结构
配置文件
服务启动
高级
标准模块开发
常规模式
配置文件
actions
dto
models
router
service
api
示例
简单示例
代码生成
修改配置
代码生成
一键菜单
菜单绑定接口
配置权限
功能验证
规范
数据库规范
高级使用
core
Swagger文档
定时任务
Air 热加载
代码工具
最后更新时间:
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{},
// ...
}
}