diff --git a/app/system/service/sys_job.go b/app/system/service/sys_job.go index 64eab6d..5d33e62 100644 --- a/app/system/service/sys_job.go +++ b/app/system/service/sys_job.go @@ -95,35 +95,36 @@ func (s *sysJob) EditJob(req *dao.SysJobEditReq) error { // JobStart 启动任务 func (s *sysJob) JobStart(job *model.SysJob) error { //获取task目录下是否绑定对应的方法 + f := TimeTaskList.GetByName(job.InvokeTarget) if f == nil { return gerror.New("没有绑定对应的方法") } //传参 paramArr := strings.Split(job.JobParams, "|") - g.Log().Infof(job.JobParams) + TimeTaskList.EditParams(f.FuncName, paramArr) - //rs := gcron.Search(job.InvokeTarget) - //if rs == nil { - if job.MisfirePolicy == 1 { - t, err := gcron.Add(job.CronExpression, f.Run, job.InvokeTarget) - //t, err := gcron.AddSingleton(job.CronExpression, f.Run, job.InvokeTarget) - if err != nil { - return err - } - if t == nil { - return gerror.New("启动任务失败") - } - } else { - t, err := gcron.AddOnce(job.CronExpression, f.Run, job.InvokeTarget) - if err != nil { - return err - } - if t == nil { - return gerror.New("启动任务失败") + rs := gcron.Search(job.InvokeTarget) + if rs == nil { + if job.MisfirePolicy == 1 { + t, err := gcron.AddSingleton(job.CronExpression, f.Run, job.InvokeTarget) + if err != nil { + return err + } + if t == nil { + return gerror.New("启动任务失败") + } + } else { + t, err := gcron.AddOnce(job.CronExpression, f.Run, job.InvokeTarget) + if err != nil { + return err + } + if t == nil { + return gerror.New("启动任务失败") + } } } - //} + gcron.Start(job.InvokeTarget) if job.MisfirePolicy == 1 { job.Status = 0 diff --git a/task/bind_function.go b/task/bind_function.go index b8de78d..5c88720 100644 --- a/task/bind_function.go +++ b/task/bind_function.go @@ -22,6 +22,7 @@ func init() { FuncName: "test2", Run: Test2, } + checkUserOnlineTask := &service.TimeTask{ FuncName: "checkUserOnline", Run: api.Auth.CheckUserOnline, @@ -29,11 +30,11 @@ func init() { service.TimeTaskList.AddTask(task1).AddTask(task2).AddTask(checkUserOnlineTask) //自动执行已开启的任务 jobs, err := service.SysJob.GetJobs() + if err != nil { g.Log().Error(err) } for _, job := range jobs { - g.Log().Infof(job.JobParams) service.SysJob.JobStart(job) } } diff --git a/task/demo.go b/task/demo.go index 4f9f2da..74459ca 100644 --- a/task/demo.go +++ b/task/demo.go @@ -13,7 +13,7 @@ import ( ) func Test1() { - //fmt.Println("Test1()无参测试") + fmt.Println("Test1()无参测试") } func Test2() { @@ -22,8 +22,10 @@ func Test2() { if t == nil { return } - //for _, v := range t.Param { - // fmt.Printf("Test2()参数:%s; ", v) - //} - fmt.Println() + + for _, v := range t.Param { + fmt.Printf("Test2()参数:%s; ", v) + fmt.Println() + } + }