- update jobs
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/tag Build is failing Details

master v1.0.31
李光春 2 years ago
parent 4d2e183b47
commit 983b69d8f3

@ -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))

@ -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)

@ -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

@ -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 != "" {

@ -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
}

@ -1,3 +1,3 @@
package gojobs
const Version = "1.0.30"
const Version = "1.0.31"

Loading…
Cancel
Save