1 Star 0 Fork 0

ainiaa/xxl-job-executor-go

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
task.go 881 Bytes
一键复制 编辑 原始数据 按行查看 历史
Jeff Liu 提交于 2021-04-19 11:32 . 1、暴露接口 RegistryRemove
package xxl
import (
"context"
"fmt"
"runtime/debug"
)
//任务执行函数
type TaskFunc func(cxt context.Context, param *RunReq) string
//任务
type Task struct {
Id int64
Name string
Ext context.Context
Param *RunReq
fn TaskFunc
Cancel context.CancelFunc
StartTime int64
EndTime int64
//日志
log Logger
}
//运行任务
func (t *Task) Run(callback func(code int64, msg string)) {
defer func(cancel func()) {
if err := recover(); err != nil {
t.log.Infof(t.Info()+" panic: %v", err)
debug.PrintStack() //堆栈跟踪
callback(500, "task panic:"+fmt.Sprintf("%v", err))
cancel()
}
}(t.Cancel)
msg := t.fn(t.Ext, t.Param)
callback(200, msg)
return
}
//任务信息
func (t *Task) Info() string {
return "任务ID[" + Int64ToStr(t.Id) + "]任务名称[" + t.Name + "]参数:" + t.Param.ExecutorParams
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/ainiaa/xxl-job-executor-go.git
git@gitee.com:ainiaa/xxl-job-executor-go.git
ainiaa
xxl-job-executor-go
xxl-job-executor-go
master

搜索帮助