diff --git a/jobs_gorm.go b/jobs_gorm.go index 3d87e08..ba97c7f 100644 --- a/jobs_gorm.go +++ b/jobs_gorm.go @@ -21,8 +21,8 @@ type ConfigJobsGorm struct { Redis *goredis.Client // 缓存数据库服务 } -// Gorm数据库驱动 -type jobsGorm struct { +// JobsGorm Gorm数据库驱动 +type JobsGorm struct { runVersion string // 运行版本 os string // 系统类型 arch string // 系统架构 @@ -37,10 +37,10 @@ type jobsGorm struct { } // NewJobsGorm 初始化 -func NewJobsGorm(config *ConfigJobsGorm) *jobsGorm { +func NewJobsGorm(config *ConfigJobsGorm) *JobsGorm { var ( - j = &jobsGorm{} + j = &JobsGorm{} ) j.runVersion = Version @@ -69,7 +69,7 @@ func NewJobsGorm(config *ConfigJobsGorm) *jobsGorm { } // 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, desc string) { // 请求函数记录 statusCreate := j.db.Create(&jobs_gorm_model.TaskLog{ TaskId: info.Id, @@ -155,7 +155,7 @@ func (j *jobsGorm) Run(info jobs_gorm_model.Task, status int, desc string) { } // RunAddLog 任务执行日志 -func (j *jobsGorm) RunAddLog(id uint, runId string) *gorm.DB { +func (j *JobsGorm) RunAddLog(id uint, runId string) *gorm.DB { return j.db.Create(&jobs_gorm_model.TaskLogRun{ TaskId: id, RunId: runId, @@ -182,7 +182,7 @@ type ConfigCreateInCustomId struct { } // CreateInCustomId 创建正在运行任务 -func (j *jobsGorm) CreateInCustomId(config *ConfigCreateInCustomId) error { +func (j *JobsGorm) CreateInCustomId(config *ConfigCreateInCustomId) error { createStatus := config.Tx.Create(&jobs_gorm_model.Task{ Status: TASK_IN, Params: config.Params, @@ -214,7 +214,7 @@ type ConfigCreateInCustomIdOnly struct { } // CreateInCustomIdOnly 创建正在运行唯一任务 -func (j *jobsGorm) CreateInCustomIdOnly(config *ConfigCreateInCustomIdOnly) error { +func (j *JobsGorm) CreateInCustomIdOnly(config *ConfigCreateInCustomIdOnly) error { query := j.TaskTypeTakeIn(config.Tx, config.CustomId, config.Type) if query.Id != 0 { return errors.New(fmt.Sprintf("%d:[%s@%s]任务已存在", query.Id, config.CustomId, config.Type)) @@ -251,7 +251,7 @@ type ConfigCreateInCustomIdMaxNumber struct { } // CreateInCustomIdMaxNumber 创建正在运行任务并限制数量 -func (j *jobsGorm) CreateInCustomIdMaxNumber(config *ConfigCreateInCustomIdMaxNumber) error { +func (j *JobsGorm) CreateInCustomIdMaxNumber(config *ConfigCreateInCustomIdMaxNumber) error { createStatus := config.Tx.Create(&jobs_gorm_model.Task{ Status: TASK_IN, Params: config.Params, @@ -285,7 +285,7 @@ type ConfigCreateInCustomIdMaxNumberOnly struct { } // CreateInCustomIdMaxNumberOnly 创建正在运行唯一任务并限制数量 -func (j *jobsGorm) CreateInCustomIdMaxNumberOnly(config *ConfigCreateInCustomIdMaxNumberOnly) error { +func (j *JobsGorm) CreateInCustomIdMaxNumberOnly(config *ConfigCreateInCustomIdMaxNumberOnly) error { query := j.TaskTypeTakeIn(config.Tx, config.CustomId, config.Type) if query.Id != 0 { return errors.New(fmt.Sprintf("%d:[%s@%s]任务已存在", query.Id, config.CustomId, config.Type)) diff --git a/jobs_gorm_check_task.go b/jobs_gorm_check_task.go index f00cbe2..8567ccf 100644 --- a/jobs_gorm_check_task.go +++ b/jobs_gorm_check_task.go @@ -7,7 +7,7 @@ import ( "log" ) -func (j *jobsGorm) Check(tx *gorm.DB, vs []jobs_gorm_model.Task) { +func (j *JobsGorm) Check(tx *gorm.DB, vs []jobs_gorm_model.Task) { if j.mainService > 0 && len(vs) > 0 { for _, v := range vs { diffInSecondWithAbs := gotime.Current().DiffInSecondWithAbs(gotime.SetCurrentParse(v.UpdatedAt).Time) diff --git a/jobs_gorm_ip.go b/jobs_gorm_ip.go index 1d0edb1..4d42477 100644 --- a/jobs_gorm_ip.go +++ b/jobs_gorm_ip.go @@ -7,7 +7,7 @@ import ( ) // RefreshIp 刷新Ip -func (j *jobsGorm) RefreshIp(tx *gorm.DB) { +func (j *JobsGorm) RefreshIp(tx *gorm.DB) { xip := goip.GetOutsideIp() if j.outsideIp == "" || j.outsideIp == "0.0.0.0" { return diff --git a/jobs_gorm_lock.go b/jobs_gorm_lock.go index 28eed35..3c3de0f 100644 --- a/jobs_gorm_lock.go +++ b/jobs_gorm_lock.go @@ -8,7 +8,7 @@ import ( ) // Lock 上锁 -func (j *jobsGorm) Lock(info jobs_gorm_model.Task, id any) string { +func (j *JobsGorm) Lock(info jobs_gorm_model.Task, id any) string { cacheName := fmt.Sprintf("cron:%v:%v", info.Type, id) judgeCache := j.redis.NewStringOperation().Get(cacheName).UnwrapOr("") if judgeCache != "" { @@ -19,13 +19,13 @@ func (j *jobsGorm) Lock(info jobs_gorm_model.Task, id any) string { } // Unlock Lock 解锁 -func (j *jobsGorm) Unlock(info jobs_gorm_model.Task, id any) { +func (j *JobsGorm) Unlock(info jobs_gorm_model.Task, id any) { cacheName := fmt.Sprintf("cron:%v:%v", info.Type, id) j.redis.NewStringOperation().Del(cacheName) } // LockForever 永远上锁 -func (j *jobsGorm) LockForever(info jobs_gorm_model.Task, id any) string { +func (j *JobsGorm) LockForever(info jobs_gorm_model.Task, id any) string { cacheName := fmt.Sprintf("cron:%v:%v", info.Type, id) judgeCache := j.redis.NewStringOperation().Get(cacheName).UnwrapOr("") if judgeCache != "" { diff --git a/jobs_gorm_model.go b/jobs_gorm_model.go index 2ffc1d9..3853d44 100644 --- a/jobs_gorm_model.go +++ b/jobs_gorm_model.go @@ -8,123 +8,123 @@ import ( ) // TaskTake 查询单任务 -func (j *jobsGorm) TaskTake(tx *gorm.DB, customId string) (result jobs_gorm_model.Task) { +func (j *JobsGorm) TaskTake(tx *gorm.DB, customId string) (result jobs_gorm_model.Task) { tx.Where("custom_id = ?", customId).Take(&result) return result } // 查询单任务 -func (j *jobsGorm) taskTake(tx *gorm.DB, customId, status string) (result jobs_gorm_model.Task) { +func (j *JobsGorm) taskTake(tx *gorm.DB, customId, status string) (result jobs_gorm_model.Task) { tx.Where("custom_id = ?", customId).Where("status = ?", status).Take(&result) return result } // TaskTakeIn 查询单任务 - 任务运行 -func (j *jobsGorm) TaskTakeIn(tx *gorm.DB, customId string) jobs_gorm_model.Task { +func (j *JobsGorm) TaskTakeIn(tx *gorm.DB, customId string) jobs_gorm_model.Task { return j.taskTake(tx, customId, TASK_IN) } // TaskTakeSuccess 查询单任务 - 任务完成 -func (j *jobsGorm) TaskTakeSuccess(tx *gorm.DB, customId string) jobs_gorm_model.Task { +func (j *JobsGorm) TaskTakeSuccess(tx *gorm.DB, customId string) jobs_gorm_model.Task { return j.taskTake(tx, customId, TASK_SUCCESS) } // TaskTakeError 查询单任务 - 任务异常 -func (j *jobsGorm) TaskTakeError(tx *gorm.DB, customId string) jobs_gorm_model.Task { +func (j *JobsGorm) TaskTakeError(tx *gorm.DB, customId string) jobs_gorm_model.Task { return j.taskTake(tx, customId, TASK_ERROR) } // TaskTakeTimeout 查询单任务 - 任务超时 -func (j *jobsGorm) TaskTakeTimeout(tx *gorm.DB, customId string) jobs_gorm_model.Task { +func (j *JobsGorm) TaskTakeTimeout(tx *gorm.DB, customId string) jobs_gorm_model.Task { return j.taskTake(tx, customId, TASK_TIMEOUT) } // TaskTakeWait 查询单任务 - 任务等待 -func (j *jobsGorm) TaskTakeWait(tx *gorm.DB, customId string) jobs_gorm_model.Task { +func (j *JobsGorm) TaskTakeWait(tx *gorm.DB, customId string) jobs_gorm_model.Task { return j.taskTake(tx, customId, TASK_WAIT) } // TaskTypeTake 查询单任务 -func (j *jobsGorm) TaskTypeTake(tx *gorm.DB, customId, Type string) (result jobs_gorm_model.Task) { +func (j *JobsGorm) TaskTypeTake(tx *gorm.DB, customId, Type string) (result jobs_gorm_model.Task) { tx.Where("custom_id = ?", customId).Where("type = ?", Type).Take(&result) return result } // 查询单任务 -func (j *jobsGorm) taskTypeTake(tx *gorm.DB, customId, Type, status string) (result jobs_gorm_model.Task) { +func (j *JobsGorm) taskTypeTake(tx *gorm.DB, customId, Type, status string) (result jobs_gorm_model.Task) { tx.Where("custom_id = ?", customId).Where("type = ?", Type).Where("status = ?", status).Take(&result) return result } // TaskTypeTakeIn 查询单任务 - 任务运行 -func (j *jobsGorm) TaskTypeTakeIn(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task { +func (j *JobsGorm) TaskTypeTakeIn(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task { return j.taskTypeTake(tx, customId, Type, TASK_IN) } // TaskTypeTakeSuccess 查询单任务 - 任务完成 -func (j *jobsGorm) TaskTypeTakeSuccess(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task { +func (j *JobsGorm) TaskTypeTakeSuccess(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task { return j.taskTypeTake(tx, customId, Type, TASK_SUCCESS) } // TaskTypeTakeError 查询单任务 - 任务异常 -func (j *jobsGorm) TaskTypeTakeError(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task { +func (j *JobsGorm) TaskTypeTakeError(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task { return j.taskTypeTake(tx, customId, Type, TASK_ERROR) } // TaskTypeTakeTimeout 查询单任务 - 任务超时 -func (j *jobsGorm) TaskTypeTakeTimeout(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task { +func (j *JobsGorm) TaskTypeTakeTimeout(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task { return j.taskTypeTake(tx, customId, Type, TASK_TIMEOUT) } // TaskTypeTakeWait 查询单任务 - 任务等待 -func (j *jobsGorm) TaskTypeTakeWait(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task { +func (j *JobsGorm) TaskTypeTakeWait(tx *gorm.DB, customId, Type string) jobs_gorm_model.Task { return j.taskTypeTake(tx, customId, Type, TASK_WAIT) } // TaskFindAll 查询多任务 -func (j *jobsGorm) TaskFindAll(tx *gorm.DB, frequency int64) (results []jobs_gorm_model.Task) { +func (j *JobsGorm) TaskFindAll(tx *gorm.DB, frequency int64) (results []jobs_gorm_model.Task) { tx.Where("frequency = ?", frequency).Order("id asc").Find(&results) return results } // 查询多任务 -func (j *jobsGorm) taskFindAll(tx *gorm.DB, frequency int64, status string) (results []jobs_gorm_model.Task) { +func (j *JobsGorm) taskFindAll(tx *gorm.DB, frequency int64, status string) (results []jobs_gorm_model.Task) { tx.Where("frequency = ?", frequency).Where("status = ?", status).Order("id asc").Find(&results) return results } // TaskFindAllIn 查询多任务 - 任务运行 -func (j *jobsGorm) TaskFindAllIn(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task { +func (j *JobsGorm) TaskFindAllIn(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task { return j.taskFindAll(tx, frequency, TASK_IN) } // TaskFindAllSuccess 查询多任务 - 任务完成 -func (j *jobsGorm) TaskFindAllSuccess(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task { +func (j *JobsGorm) TaskFindAllSuccess(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task { return j.taskFindAll(tx, frequency, TASK_SUCCESS) } // TaskFindAllError 查询多任务 - 任务异常 -func (j *jobsGorm) TaskFindAllError(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task { +func (j *JobsGorm) TaskFindAllError(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task { return j.taskFindAll(tx, frequency, TASK_ERROR) } // TaskFindAllTimeout 查询多任务 - 任务超时 -func (j *jobsGorm) TaskFindAllTimeout(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task { +func (j *JobsGorm) TaskFindAllTimeout(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task { return j.taskFindAll(tx, frequency, TASK_TIMEOUT) } // TaskFindAllWait 查询多任务 - 任务等待 -func (j *jobsGorm) TaskFindAllWait(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task { +func (j *JobsGorm) TaskFindAllWait(tx *gorm.DB, frequency int64) []jobs_gorm_model.Task { return j.taskFindAll(tx, frequency, TASK_WAIT) } // EditTask 任务修改 -func (j *jobsGorm) EditTask(tx *gorm.DB, id uint) *gorm.DB { +func (j *JobsGorm) EditTask(tx *gorm.DB, id uint) *gorm.DB { return tx.Model(&jobs_gorm_model.Task{}).Where("id = ?", id) } // UpdateFrequency 更新任务频率 -func (j *jobsGorm) UpdateFrequency(tx *gorm.DB, id uint, frequency int64) *gorm.DB { +func (j *JobsGorm) UpdateFrequency(tx *gorm.DB, id uint, frequency int64) *gorm.DB { return j.EditTask(tx, id). Select("frequency"). Updates(jobs_gorm_model.Task{ @@ -132,13 +132,13 @@ func (j *jobsGorm) UpdateFrequency(tx *gorm.DB, id uint, frequency int64) *gorm. }) } -func (j *jobsGorm) taskIpTake(tx *gorm.DB, taskType, ips string) (result jobs_gorm_model.TaskIp) { +func (j *JobsGorm) 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 (j *jobsGorm) TaskIpUpdate(tx *gorm.DB, taskType, ips string) *gorm.DB { +func (j *JobsGorm) TaskIpUpdate(tx *gorm.DB, taskType, ips string) *gorm.DB { query := j.taskIpTake(tx, taskType, ips) if query.Id != 0 { return tx @@ -154,7 +154,7 @@ func (j *jobsGorm) TaskIpUpdate(tx *gorm.DB, taskType, ips string) *gorm.DB { } // TaskIpInit 实例任务ip -func (j *jobsGorm) TaskIpInit(tx *gorm.DB, ips map[string]string) bool { +func (j *JobsGorm) TaskIpInit(tx *gorm.DB, ips map[string]string) bool { if j.outsideIp == "" || j.outsideIp == "0.0.0.0" { return false } @@ -184,7 +184,7 @@ func (j *jobsGorm) TaskIpInit(tx *gorm.DB, ips map[string]string) bool { } // TaskLogRunTake 查询任务执行日志 -func (j *jobsGorm) TaskLogRunTake(tx *gorm.DB, taskId uint, runId string) (result jobs_gorm_model.TaskLogRun) { +func (j *JobsGorm) 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/version.go b/version.go index f821713..1244c68 100644 --- a/version.go +++ b/version.go @@ -1,3 +1,3 @@ package gojobs -const Version = "1.0.30" +const Version = "1.0.31"