1 Star 1 Fork 29

go-course / cmdb-g7

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
app.go 1.04 KB
一键复制 编辑 原始数据 按行查看 历史
Mr.Yu 提交于 2022-05-28 17:52 . 使用goroutine 改造为异常任务
package task
import (
"time"
"github.com/go-playground/validator/v10"
"github.com/rs/xid"
)
const (
AppName = "task"
)
var (
validate = validator.New()
)
func NewCreateTaskRequst() *CreateTaskRequst {
return &CreateTaskRequst{
Params: map[string]string{},
// 默认半小时的超市时间
Timeout: 30 * 60,
}
}
func (req *CreateTaskRequst) Validate() error {
return validate.Struct(req)
}
func CreateTask(req *CreateTaskRequst) (*Task, error) {
if err := req.Validate(); err != nil {
return nil, err
}
ins := NewDefaultTask()
ins.Data = req
ins.Id = xid.New().String()
return ins, nil
}
func NewDefaultTask() *Task {
return &Task{
Data: &CreateTaskRequst{},
Status: &Status{},
}
}
func (s *Task) Run() {
s.Status.StartAt = time.Now().UnixMilli()
s.Status.Stage = Stage_RUNNING
}
func (s *Task) Failed(message string) {
s.Status.EndAt = time.Now().UnixMilli()
s.Status.Stage = Stage_FAILED
s.Status.Message = message
}
func (s *Task) Success() {
s.Status.EndAt = time.Now().UnixMilli()
s.Status.Stage = Stage_SUCCESS
}
1
https://gitee.com/go-course/cmdb-g7.git
git@gitee.com:go-course/cmdb-g7.git
go-course
cmdb-g7
cmdb-g7
eccb8114820a

搜索帮助