系统目前是支持两种定时类型,一种是函数类型,一种是接口类型,来支持多样的业务;时间周期可视化选择,方便设定执行周期。框架UI漂亮,添加管理定时任务设置简单,客户都可以做自己调整执行时间周期,直观的执行日志,下面我们一起框体验吧!
一、在线体验和获取代码地址
立即体验
去获取代码
二、截图效果
三、使用
HttpJob 接口类型
任务类型选择:访问URL。
接口类型是比较简单的,在系统中配置好调用的接口地址(访问的url地址)、调用周期即可;
ExecJob 函数类型
任务类型选择:调用函数。
函数类型是需要使用代码来完成的业务,这个时候我们需要使用函数类型;
系统中给出了一个示例:
cronjob
目录中可以看到examples.go
的文件,这里边是给出的一个示例代码;
下面我们针对示例代码做一下介绍:
第一步:需要创建一个结构体,这个结构体需要实现JobCore
接口;如:ExamplesOne,里边实现了Exec
方法;
type ExamplesOne struct{}
func (t ExamplesOne) Exec(arg interface{}) error {
str := time.Now().Format(timeFormat) + " [INFO] JobCore ExamplesOne exec success"
// TODO: 这里需要注意 Examples 传入参数是 string 所以 arg.(string);请根据对应的类型进行转化;
switch arg.(type) {
case string:
if arg.(string) != "" {
fmt.Println("函数参数:", arg.(string))
fmt.Println("函数执行了:", str, arg.(string))
} else {
fmt.Println("arg is nil")
fmt.Println("函数执行了:", str, "arg is nil")
}
break
}
return nil
}
第二步:需要在jobbase.go下的InitJob中注册这个结构体;如:ExamplesOne;需要将结构体的名称作为key,结构体作为value;这样重新启动项目,就可以在系统中进行配置并使用了;
func InitJob() {
jobList = map[string]JobsExec{
"ExamplesOne": ExamplesOne{},
// ...
}
}