From 6b3b29d0c2f71c9b61c050eda17273279c555271 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Thu, 15 Sep 2022 10:35:46 +0800 Subject: [PATCH] - update gorm model --- client.go | 5 ++- const.go | 2 +- gorm_model.go | 59 ------------------------------- ip.go | 21 ------------ jobs_gorm_model/task_ip.go | 12 ------- jobs_gorm_model/task_log.go | 17 --------- jobs_gorm_model/task_log_run.go | 23 ------------- model.go | 15 -------- run.go | 61 +++++++++------------------------ 9 files changed, 20 insertions(+), 195 deletions(-) delete mode 100644 ip.go delete mode 100644 jobs_gorm_model/task_ip.go delete mode 100644 jobs_gorm_model/task_log.go delete mode 100644 jobs_gorm_model/task_log_run.go diff --git a/client.go b/client.go index cc7af7d..10a8fdf 100644 --- a/client.go +++ b/client.go @@ -88,6 +88,8 @@ func NewClient(config *ClientConfig) (*Client, error) { if redisClient != nil && redisClient.Db != nil { c.cache.redisClient = redisClient c.cache.redisLockClient = c.cache.redisClient.NewLock() + } else { + return nil, redisPrefixFunNoConfig } // 缓存前缀 @@ -105,9 +107,6 @@ func NewClient(config *ClientConfig) (*Client, error) { c.db.gormClient = gormClient c.autoMigrateTask(ctx) - c.autoMigrateTaskIp(ctx) - c.autoMigrateTaskLog(ctx) - c.autoMigrateTaskLogRun(ctx) } else { return nil, gormClientFunNoConfig } diff --git a/const.go b/const.go index 7a67420..1482c1a 100644 --- a/const.go +++ b/const.go @@ -1,6 +1,6 @@ package gojobs const ( - Version = "1.0.84" + Version = "1.0.85" SpecifyIpNull = "0.0.0.0" ) diff --git a/gorm_model.go b/gorm_model.go index 8356326..df82d68 100644 --- a/gorm_model.go +++ b/gorm_model.go @@ -3,8 +3,6 @@ package gojobs import ( "go.dtapp.net/gojobs/jobs_gorm_model" "gorm.io/gorm" - "log" - "strings" ) // TaskTakeId 查询单任务 @@ -160,60 +158,3 @@ func (c *Client) UpdateFrequency(tx *gorm.DB, id uint, frequency int64) *gorm.DB Frequency: frequency, }) } - -func (c *Client) taskIpTake(tx *gorm.DB, taskType, ips string) (result jobs_gorm_model.TaskIp) { - tx.Where("task_type = ?", taskType).Where("ips = ?", ips).Take(&result) - return result -} - -// TaskIpUpdate 更新ip -func (c *Client) TaskIpUpdate(tx *gorm.DB, taskType, ips string) *gorm.DB { - query := c.taskIpTake(tx, taskType, ips) - if query.Id != 0 { - return tx - } - updateStatus := tx.Create(&jobs_gorm_model.TaskIp{ - TaskType: taskType, - Ips: ips, - }) - if updateStatus.RowsAffected == 0 { - log.Println("任务更新失败:", updateStatus.Error) - } - return updateStatus -} - -// TaskIpInit 实例任务ip -func (c *Client) TaskIpInit(tx *gorm.DB, ips map[string]string) bool { - if c.config.systemOutsideIp == "" || c.config.systemOutsideIp == "0.0.0.0" { - return false - } - tx.Where("ips = ?", c.config.systemOutsideIp).Delete(&jobs_gorm_model.TaskIp{}) // 删除 - for k, v := range ips { - if v == "" { - c.TaskIpUpdate(tx, k, c.config.systemOutsideIp) - } else { - find := strings.Contains(v, ",") - if find == true { - // 包含 - parts := strings.Split(v, ",") - for _, vv := range parts { - if vv == c.config.systemOutsideIp { - c.TaskIpUpdate(tx, k, c.config.systemOutsideIp) - } - } - } else { - // 不包含 - if v == c.config.systemOutsideIp { - c.TaskIpUpdate(tx, k, c.config.systemOutsideIp) - } - } - } - } - return true -} - -// TaskLogRunTake 查询任务执行日志 -func (c *Client) TaskLogRunTake(tx *gorm.DB, taskId uint, runId string) (result jobs_gorm_model.TaskLogRun) { - tx.Select("id", "os", "arch", "outside_ip", "created_at").Where("task_id = ?", taskId).Where("run_id = ?", runId).Take(&result) - return result -} diff --git a/ip.go b/ip.go deleted file mode 100644 index 7ac236e..0000000 --- a/ip.go +++ /dev/null @@ -1,21 +0,0 @@ -package gojobs - -import ( - "context" - "go.dtapp.net/goip" - "go.dtapp.net/gojobs/jobs_gorm_model" - "gorm.io/gorm" -) - -// RefreshIp 刷新Ip -func (c *Client) RefreshIp(ctx context.Context, tx *gorm.DB) { - xip := goip.GetOutsideIp(ctx) - if c.config.systemOutsideIp == "" || c.config.systemOutsideIp == "0.0.0.0" { - return - } - if c.config.systemOutsideIp == xip { - return - } - tx.Where("ips = ?", c.config.systemOutsideIp).Delete(&jobs_gorm_model.TaskIp{}) // 删除 - c.config.systemOutsideIp = xip -} diff --git a/jobs_gorm_model/task_ip.go b/jobs_gorm_model/task_ip.go deleted file mode 100644 index d700f4c..0000000 --- a/jobs_gorm_model/task_ip.go +++ /dev/null @@ -1,12 +0,0 @@ -package jobs_gorm_model - -// TaskIp 任务Ip -type TaskIp struct { - Id int64 `gorm:"primaryKey;comment:记录编号" json:"id"` // 记录编号 - TaskType string `gorm:"comment:任务编号" json:"task_type"` // 任务编号 - Ips string `gorm:"comment:任务IP" json:"ips"` // 任务IP -} - -func (TaskIp) TableName() string { - return "task_ip" -} diff --git a/jobs_gorm_model/task_log.go b/jobs_gorm_model/task_log.go deleted file mode 100644 index 82de32d..0000000 --- a/jobs_gorm_model/task_log.go +++ /dev/null @@ -1,17 +0,0 @@ -package jobs_gorm_model - -import "time" - -// TaskLog 任务日志模型 -type TaskLog struct { - Id uint `gorm:"primaryKey;comment:记录编号" json:"id"` // 记录编号 - TaskId uint `gorm:"index;comment:任务编号" json:"task_id"` // 任务编号 - StatusCode int `gorm:"index;comment:状态码" json:"status_code"` // 状态码 - Desc string `gorm:"comment:结果" json:"desc"` // 结果 - Version string `gorm:"comment:版本" json:"version"` // 版本 - CreatedAt time.Time `gorm:"autoCreateTime;comment:创建时间" json:"created_at"` // 创建时间 -} - -func (TaskLog) TableName() string { - return "task_log" -} diff --git a/jobs_gorm_model/task_log_run.go b/jobs_gorm_model/task_log_run.go deleted file mode 100644 index 8a4cab2..0000000 --- a/jobs_gorm_model/task_log_run.go +++ /dev/null @@ -1,23 +0,0 @@ -package jobs_gorm_model - -import "time" - -// TaskLogRun 任务执行日志模型 -type TaskLogRun struct { - Id uint `gorm:"primaryKey;comment:记录编号" json:"id"` // 记录编号 - TaskId uint `gorm:"index;comment:任务编号" json:"task_id"` // 任务编号 - RunId string `gorm:"comment:执行编号" json:"run_id"` // 执行编号 - OutsideIp string `gorm:"comment:外网ip" json:"outside_ip"` // 外网ip - InsideIp string `gorm:"comment:内网ip" json:"inside_ip"` // 内网ip - Os string `gorm:"comment:系统类型" json:"os"` // 系统类型 - Arch string `gorm:"comment:系统架构" json:"arch"` // 系统架构 - Gomaxprocs int `gorm:"comment:CPU核数" json:"gomaxprocs"` // CPU核数 - GoVersion string `gorm:"comment:GO版本" json:"go_version"` // GO版本 - SdkVersion string `gorm:"comment:SDK版本" json:"sdk_version"` // SDK版本 - MacAddrs string `gorm:"comment:Mac地址" json:"mac_addrs"` // Mac地址 - CreatedAt time.Time `gorm:"autoCreateTime;comment:创建时间" json:"created_at"` // 创建时间 -} - -func (TaskLogRun) TableName() string { - return "task_log_run" -} diff --git a/model.go b/model.go index 006021b..ce4d4f6 100644 --- a/model.go +++ b/model.go @@ -14,21 +14,6 @@ func (c *Client) autoMigrateTask(ctx context.Context) { c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.gormClient.Db.AutoMigrate(&jobs_gorm_model.Task{})) } -// 创建模型 -func (c *Client) autoMigrateTaskIp(ctx context.Context) { - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.gormClient.Db.AutoMigrate(&jobs_gorm_model.TaskIp{})) -} - -// 创建模型 -func (c *Client) autoMigrateTaskLog(ctx context.Context) { - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.gormClient.Db.AutoMigrate(&jobs_gorm_model.TaskLog{})) -} - -// 创建模型 -func (c *Client) autoMigrateTaskLogRun(ctx context.Context) { - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.gormClient.Db.AutoMigrate(&jobs_gorm_model.TaskLogRun{})) -} - // 创建时间序列集合 func (c *Client) mongoCreateCollectionTask(ctx context.Context) { var commandResult bson.M diff --git a/run.go b/run.go index 0b6ff3c..87bdd03 100644 --- a/run.go +++ b/run.go @@ -16,18 +16,9 @@ func (c *Client) Run(ctx context.Context, info jobs_gorm_model.Task, status int, return } - // 请求函数记录 - err := c.db.gormClient.Db.Create(&jobs_gorm_model.TaskLog{ - TaskId: info.Id, - StatusCode: status, - Desc: result, - Version: c.config.sdkVersion, - }).Error - if err != nil { - c.zapLog.WithTraceId(ctx).Sugar().Errorf("[gojobs.Run.Create]:%s", err.Error()) - } - if status == 0 { - err = c.EditTask(c.db.gormClient.Db, info.Id). + switch status { + case 0: + err := c.EditTask(c.db.gormClient.Db, info.Id). Select("run_id", "result", "next_run_time"). Updates(jobs_gorm_model.Task{ RunId: runId, @@ -35,14 +26,12 @@ func (c *Client) Run(ctx context.Context, info jobs_gorm_model.Task, status int, NextRunTime: gotime.Current().AfterSeconds(info.Frequency).Time, }).Error if err != nil { - c.zapLog.WithTraceId(ctx).Sugar().Errorf("[gojobs.Run.0.EditTask]:%s", err.Error()) + c.zapLog.WithTraceId(ctx).Sugar().Errorf("[gojobs.Run.0]:%s", err.Error()) } return - } - // 任务 - if status == CodeSuccess { + case CodeSuccess: // 执行成功 - err = c.EditTask(c.db.gormClient.Db, info.Id). + err := c.EditTask(c.db.gormClient.Db, info.Id). Select("status_desc", "number", "run_id", "updated_ip", "result", "next_run_time"). Updates(jobs_gorm_model.Task{ StatusDesc: "执行成功", @@ -53,12 +42,11 @@ func (c *Client) Run(ctx context.Context, info jobs_gorm_model.Task, status int, NextRunTime: gotime.Current().AfterSeconds(info.Frequency).Time, }).Error if err != nil { - c.zapLog.WithTraceId(ctx).Sugar().Errorf("[gojobs.Run.CodeSuccess.EditTask]:%s", err.Error()) + c.zapLog.WithTraceId(ctx).Sugar().Errorf("[gojobs.Run.CodeSuccess]:%s", err.Error()) } - } - if status == CodeEnd { + case CodeEnd: // 执行成功、提前结束 - err = c.EditTask(c.db.gormClient.Db, info.Id). + err := c.EditTask(c.db.gormClient.Db, info.Id). Select("status", "status_desc", "number", "updated_ip", "result", "next_run_time"). Updates(jobs_gorm_model.Task{ Status: TASK_SUCCESS, @@ -69,12 +57,11 @@ func (c *Client) Run(ctx context.Context, info jobs_gorm_model.Task, status int, NextRunTime: gotime.Current().Time, }).Error if err != nil { - c.zapLog.WithTraceId(ctx).Sugar().Errorf("[gojobs.Run.CodeEnd.EditTask]:%s", err.Error()) + c.zapLog.WithTraceId(ctx).Sugar().Errorf("[gojobs.Run.CodeEnd]:%s", err.Error()) } - } - if status == CodeError { + case CodeError: // 执行失败 - err = c.EditTask(c.db.gormClient.Db, info.Id). + err := c.EditTask(c.db.gormClient.Db, info.Id). Select("status_desc", "number", "run_id", "updated_ip", "result", "next_run_time"). Updates(jobs_gorm_model.Task{ StatusDesc: "执行失败", @@ -85,36 +72,22 @@ func (c *Client) Run(ctx context.Context, info jobs_gorm_model.Task, status int, NextRunTime: gotime.Current().AfterSeconds(info.Frequency).Time, }).Error if err != nil { - c.zapLog.WithTraceId(ctx).Sugar().Errorf("[gojobs.Run.CodeError.EditTask]:%s", err.Error()) + c.zapLog.WithTraceId(ctx).Sugar().Errorf("[gojobs.Run.CodeError]:%s", err.Error()) } } + if info.MaxNumber != 0 { if info.Number+1 >= info.MaxNumber { // 关闭执行 - err = c.EditTask(c.db.gormClient.Db, info.Id). + err := c.EditTask(c.db.gormClient.Db, info.Id). Select("status"). Updates(jobs_gorm_model.Task{ Status: TASK_TIMEOUT, }).Error if err != nil { - c.zapLog.WithTraceId(ctx).Sugar().Errorf("[gojobs.Run.TASK_TIMEOUT.EditTask]:%s", err.Error()) + c.zapLog.WithTraceId(ctx).Sugar().Errorf("[gojobs.Run.TASK_TIMEOUT]:%s", err.Error()) } } } -} - -// RunAddLog 任务执行日志 -func (c *Client) RunAddLog(ctx context.Context, id uint, runId string) error { - return c.db.gormClient.Db.Create(&jobs_gorm_model.TaskLogRun{ - TaskId: id, - RunId: runId, - InsideIp: c.config.systemInsideIp, - OutsideIp: c.config.systemOutsideIp, - Os: c.config.systemOs, - Arch: c.config.systemArch, - Gomaxprocs: c.config.systemCpuQuantity, - GoVersion: c.config.goVersion, - SdkVersion: c.config.sdkVersion, - MacAddrs: c.config.systemMacAddrS, - }).Error + return }