diff --git a/apis/sysjob/sysjob.go b/apis/sysjob/sysjob.go index dfb6dc44..deeb78b1 100644 --- a/apis/sysjob/sysjob.go +++ b/apis/sysjob/sysjob.go @@ -114,6 +114,7 @@ func StartJob(c *gin.Context) { j.CronExpression = result.CronExpression j.JobId = result.JobId j.Name = result.JobName + j.Args = result.Args data.EntryId, err = jobs.AddJob(j) } diff --git a/jobs/examples.go b/jobs/examples.go index cef1996d..cc0ba853 100644 --- a/jobs/examples.go +++ b/jobs/examples.go @@ -18,7 +18,21 @@ func InitJob() { type ExamplesOne struct { } -func (t ExamplesOne) Exec() { +func (t ExamplesOne) Exec(arg interface{}) error { str := time.Now().Format(timeFormat) + " [INFO] JobCore ExamplesOne exec success" - fmt.Println(str) + // TODO: 这里需要注意 Examples 传入参数是 string 所以 arg.(string);请根据对应的类型进行转化; + switch arg.(type) { + + case string: + if arg.(string) != "" { + fmt.Println("string", arg.(string)) + fmt.Println(str, arg.(string)) + } else { + fmt.Println("arg is nil") + fmt.Println(str, "arg is nil") + } + break + } + + return nil } diff --git a/jobs/jobbase.go b/jobs/jobbase.go index e6034060..ffca3d98 100644 --- a/jobs/jobbase.go +++ b/jobs/jobbase.go @@ -23,6 +23,7 @@ type JobCore struct { JobId int EntryId int CronExpression string + Args string } // 任务类型 http @@ -41,7 +42,7 @@ func (e *ExecJob) Run() { global.JobLogger.Warning(" ExecJob Run job nil", e) return } - CallExec(obj.(JobsExec)) + CallExec(obj.(JobsExec), e.Args) // 结束时间 endTime := time.Now() @@ -119,6 +120,7 @@ func Setup() { j.CronExpression = jobList[i].CronExpression j.JobId = jobList[i].JobId j.Name = jobList[i].JobName + j.Args = jobList[i].Args sysJob.EntryId, err = AddJob(j) } _, err = sysJob.Update(jobList[i].JobId) diff --git a/jobs/type.go b/jobs/type.go index 39d94906..a7ede6af 100644 --- a/jobs/type.go +++ b/jobs/type.go @@ -6,9 +6,9 @@ type Job interface { } type JobsExec interface { - Exec() + Exec(arg interface{}) error } -func CallExec(e JobsExec) { - e.Exec() +func CallExec(e JobsExec, arg interface{}) error { + return e.Exec(arg) } diff --git a/models/sysjob.go b/models/sysjob.go index 017114cd..c188d9e6 100644 --- a/models/sysjob.go +++ b/models/sysjob.go @@ -12,6 +12,7 @@ type SysJob struct { JobType int `json:"jobType" gorm:"size:1;"` // 任务类型 CronExpression string `json:"cronExpression" gorm:"size:255;"` // cron表达式 InvokeTarget string `json:"invokeTarget" gorm:"size:255;"` // 调用目标 + Args string `json:"args" gorm:"size:255;"` // 目标参数 MisfirePolicy int `json:"misfirePolicy" gorm:"size:255;"` // 执行策略 Concurrent int `json:"concurrent" gorm:"size:1;"` // 是否并发 Status int `json:"status" gorm:"size:1;"` // 状态