- update run

master v1.0.67
李光春 2 years ago
parent 3705004c3d
commit 5e80f3edf0

@ -1,3 +1,3 @@
package gojobs package gojobs
const Version = "1.0.66" const Version = "1.0.67"

@ -24,6 +24,7 @@ type Task struct {
SpecifyIp string `gorm:"index;comment:指定外网IP" json:"specify_ip"` // 指定外网IP SpecifyIp string `gorm:"index;comment:指定外网IP" json:"specify_ip"` // 指定外网IP
UpdatedIp string `gorm:"comment:更新外网IP" json:"updated_ip"` // 更新外网IP UpdatedIp string `gorm:"comment:更新外网IP" json:"updated_ip"` // 更新外网IP
Result string `gorm:"comment:结果" json:"result"` // 结果 Result string `gorm:"comment:结果" json:"result"` // 结果
NextRunTime time.Time `gorm:"comment:下次运行时间" json:"next_run_time"` // 下次运行时间
CreatedAt time.Time `gorm:"autoCreateTime;comment:创建时间" json:"created_at"` // 创建时间 CreatedAt time.Time `gorm:"autoCreateTime;comment:创建时间" json:"created_at"` // 创建时间
UpdatedAt time.Time `gorm:"autoUpdateTime;comment:更新时间" json:"updated_at"` // 更新时间 UpdatedAt time.Time `gorm:"autoUpdateTime;comment:更新时间" json:"updated_at"` // 更新时间
DeletedAt gorm.DeletedAt `gorm:"index;comment:删除时间" json:"deleted_at"` // 删除时间 DeletedAt gorm.DeletedAt `gorm:"index;comment:删除时间" json:"deleted_at"` // 删除时间

@ -3,16 +3,17 @@ package gojobs
import ( import (
"go.dtapp.net/gojobs/jobs_gorm_model" "go.dtapp.net/gojobs/jobs_gorm_model"
"go.dtapp.net/gostring" "go.dtapp.net/gostring"
"go.dtapp.net/gotime"
"log" "log"
) )
// Run 运行 // Run 运行
func (j *JobsGorm) Run(info jobs_gorm_model.Task, status int, desc string) { func (j *JobsGorm) Run(info jobs_gorm_model.Task, status int, result string) {
// 请求函数记录 // 请求函数记录
err := j.gormClient.Db.Create(&jobs_gorm_model.TaskLog{ err := j.gormClient.Db.Create(&jobs_gorm_model.TaskLog{
TaskId: info.Id, TaskId: info.Id,
StatusCode: status, StatusCode: status,
Desc: desc, Desc: result,
Version: j.config.runVersion, Version: j.config.runVersion,
}).Error }).Error
if err != nil { if err != nil {
@ -20,12 +21,14 @@ func (j *JobsGorm) Run(info jobs_gorm_model.Task, status int, desc string) {
} }
if status == 0 { if status == 0 {
err = j.EditTask(j.gormClient.Db, info.Id). err = j.EditTask(j.gormClient.Db, info.Id).
Select("run_id"). Select("run_id", "result", "next_run_time").
Updates(jobs_gorm_model.Task{ Updates(jobs_gorm_model.Task{
RunId: gostring.GetUuId(), RunId: gostring.GetUuId(),
Result: result,
NextRunTime: gotime.Current().AfterSeconds(info.Frequency).Time,
}).Error }).Error
if err != nil { if err != nil {
log.Println("[gojobs.Run.EditTask]", err.Error()) log.Println("[gojobs.Run.0.EditTask]", err.Error())
} }
return return
} }
@ -33,46 +36,49 @@ func (j *JobsGorm) Run(info jobs_gorm_model.Task, status int, desc string) {
if status == CodeSuccess { if status == CodeSuccess {
// 执行成功 // 执行成功
err = j.EditTask(j.gormClient.Db, info.Id). err = j.EditTask(j.gormClient.Db, info.Id).
Select("status_desc", "number", "run_id", "updated_ip", "result"). Select("status_desc", "number", "run_id", "updated_ip", "result", "next_run_time").
Updates(jobs_gorm_model.Task{ Updates(jobs_gorm_model.Task{
StatusDesc: "执行成功", StatusDesc: "执行成功",
Number: info.Number + 1, Number: info.Number + 1,
RunId: gostring.GetUuId(), RunId: gostring.GetUuId(),
UpdatedIp: j.config.outsideIp, UpdatedIp: j.config.outsideIp,
Result: desc, Result: result,
NextRunTime: gotime.Current().AfterSeconds(info.Frequency).Time,
}).Error }).Error
if err != nil { if err != nil {
log.Println("[gojobs.Run.EditTask]", err.Error()) log.Println("[gojobs.Run.CodeSuccess.EditTask]", err.Error())
} }
} }
if status == CodeEnd { if status == CodeEnd {
// 执行成功、提前结束 // 执行成功、提前结束
err = j.EditTask(j.gormClient.Db, info.Id). err = j.EditTask(j.gormClient.Db, info.Id).
Select("status", "status_desc", "number", "updated_ip", "result"). Select("status", "status_desc", "number", "updated_ip", "result", "next_run_time").
Updates(jobs_gorm_model.Task{ Updates(jobs_gorm_model.Task{
Status: TASK_SUCCESS, Status: TASK_SUCCESS,
StatusDesc: "结束执行", StatusDesc: "结束执行",
Number: info.Number + 1, Number: info.Number + 1,
UpdatedIp: j.config.outsideIp, UpdatedIp: j.config.outsideIp,
Result: desc, Result: result,
NextRunTime: gotime.Current().Time,
}).Error }).Error
if err != nil { if err != nil {
log.Println("[gojobs.Run.EditTask]", err.Error()) log.Println("[gojobs.Run.CodeEnd.EditTask]", err.Error())
} }
} }
if status == CodeError { if status == CodeError {
// 执行失败 // 执行失败
err = j.EditTask(j.gormClient.Db, info.Id). err = j.EditTask(j.gormClient.Db, info.Id).
Select("status_desc", "number", "run_id", "updated_ip", "result"). Select("status_desc", "number", "run_id", "updated_ip", "result", "next_run_time").
Updates(jobs_gorm_model.Task{ Updates(jobs_gorm_model.Task{
StatusDesc: "执行失败", StatusDesc: "执行失败",
Number: info.Number + 1, Number: info.Number + 1,
RunId: gostring.GetUuId(), RunId: gostring.GetUuId(),
UpdatedIp: j.config.outsideIp, UpdatedIp: j.config.outsideIp,
Result: desc, Result: result,
NextRunTime: gotime.Current().AfterSeconds(info.Frequency).Time,
}).Error }).Error
if err != nil { if err != nil {
log.Println("[gojobs.Run.EditTask]", err.Error()) log.Println("[gojobs.Run.CodeError.EditTask]", err.Error())
} }
} }
if info.MaxNumber != 0 { if info.MaxNumber != 0 {
@ -84,7 +90,7 @@ func (j *JobsGorm) Run(info jobs_gorm_model.Task, status int, desc string) {
Status: TASK_TIMEOUT, Status: TASK_TIMEOUT,
}).Error }).Error
if err != nil { if err != nil {
log.Println("[gojobs.Run.EditTask]", err.Error()) log.Println("[gojobs.Run.TASK_TIMEOUT.EditTask]", err.Error())
} }
} }
} }

@ -1,26 +1,29 @@
package jobs_xorm_model package jobs_xorm_model
import "time"
// Task 任务 // Task 任务
type Task struct { type Task struct {
Id uint `xorm:"pk autoincr" json:"id"` // 记录编号 Id uint `xorm:"pk autoincr" json:"id"` // 记录编号
Status string `json:"status"` // 状态码 Status string `json:"status"` // 状态码
Params string `json:"params"` // 参数 Params string `json:"params"` // 参数
ParamsType string `json:"params_type"` // 参数类型 ParamsType string `json:"params_type"` // 参数类型
StatusDesc string `json:"status_desc"` // 状态描述 StatusDesc string `json:"status_desc"` // 状态描述
Frequency int64 `json:"frequency"` // 频率(秒单位) Frequency int64 `json:"frequency"` // 频率(秒单位)
Number int64 `json:"number"` // 当前次数 Number int64 `json:"number"` // 当前次数
MaxNumber int64 `json:"max_number"` // 最大次数 MaxNumber int64 `json:"max_number"` // 最大次数
RunId string `json:"run_id"` // 执行编号 RunId string `json:"run_id"` // 执行编号
CustomId string `json:"custom_id"` // 自定义编号 CustomId string `json:"custom_id"` // 自定义编号
CustomSequence int64 `json:"custom_sequence"` // 自定义顺序 CustomSequence int64 `json:"custom_sequence"` // 自定义顺序
Type string `json:"type"` // 类型 Type string `json:"type"` // 类型
CreatedIp string `json:"created_ip"` // 创建外网IP CreatedIp string `json:"created_ip"` // 创建外网IP
SpecifyIp string `json:"specify_ip"` // 指定外网IP SpecifyIp string `json:"specify_ip"` // 指定外网IP
UpdatedIp string `json:"updated_ip"` // 更新外网IP UpdatedIp string `json:"updated_ip"` // 更新外网IP
Result string `json:"result"` // 结果 Result string `json:"result"` // 结果
CreatedAt string `xorm:"created" json:"created_at"` // 创建时间 NextRunTime time.Time `json:"next_run_time"` // 下次运行时间
UpdatedAt string `xorm:"created" json:"updated_at"` // 更新时间 CreatedAt string `xorm:"created" json:"created_at"` // 创建时间
DeletedAt string `xorm:"deleted" json:"deleted_at"` // 删除时间 UpdatedAt string `xorm:"created" json:"updated_at"` // 更新时间
DeletedAt string `xorm:"deleted" json:"deleted_at"` // 删除时间
} }
func (m *Task) TableName() string { func (m *Task) TableName() string {

Loading…
Cancel
Save