diff --git a/config/db.sql b/config/db.sql index 2f93f179..3b2bcffc 100644 --- a/config/db.sql +++ b/config/db.sql @@ -93,7 +93,7 @@ INSERT INTO sys_dict_data VALUES (6, 0, '显示', '0', 'sys_show_hide', '', '', INSERT INTO sys_dict_data VALUES (7, 0, '隐藏', '1', 'sys_show_hide', '', '', '', 0, '', '1', '', '隐藏菜单', '2020-02-28 21:38:50', '2020-03-08 23:11:15', NULL); INSERT INTO sys_dict_data VALUES (8, 0, '是', 'Y', 'sys_yes_no', '', '', '', 0, '', '1', '', '系统默认是', '2020-02-28 21:39:40', '2020-03-08 23:11:15', NULL); INSERT INTO sys_dict_data VALUES (9, 0, '否', 'N', 'sys_yes_no', '', '', '', 0, '', '1', '', '系统默认否', '2020-02-28 21:40:06', '2020-03-08 23:11:15', NULL); -INSERT INTO sys_dict_data VALUES (10, 0, '正常', '0', 'sys_job_status', '', '', '', 0, '', '1', '', '正常状态', '2020-02-28 21:41:02', '2020-03-08 23:11:15', NULL); +INSERT INTO sys_dict_data VALUES (10, 0, '正常', '2', 'sys_job_status', '', '', '', 0, '', '1', '', '正常状态', '2020-02-28 21:41:02', '2020-03-08 23:11:15', NULL); INSERT INTO sys_dict_data VALUES (11, 0, '停用', '1', 'sys_job_status', '', '', '', 0, '', '1', '', '停用状态', '2020-02-28 21:41:15', '2020-03-08 23:11:15', NULL); INSERT INTO sys_dict_data VALUES (12, 0, '默认', 'DEFAULT', 'sys_job_group', '', '', '', 0, '', '1', '', '默认分组', '2020-02-28 21:41:48', '2020-03-08 23:11:15', NULL); INSERT INTO sys_dict_data VALUES (13, 0, '系统', 'SYSTEM', 'sys_job_group', '', '', '', 0, '', '1', '', '系统分组', '2020-02-28 21:42:02', '2020-03-08 23:11:15', NULL); diff --git a/jobs/examples.go b/jobs/examples.go index 3c785246..ed0a5625 100644 --- a/jobs/examples.go +++ b/jobs/examples.go @@ -2,6 +2,7 @@ package jobs import ( "fmt" + "time" ) // 需要将定义的struct 添加到字典中; @@ -12,10 +13,11 @@ func init() { jobList = mp } - // 新添加的job 必须按照以下格式定义,并实现Exec函数 type ExamplesOne struct { } + func (t ExamplesOne) Exec() { - fmt.Println("call method PrintInfo ,method name : ExamplesOne") + str := time.Now().Format(timeFormat) + " [INFO] JobCore ExamplesOne exec success" + fmt.Println(str) } diff --git a/jobs/jobbase.go b/jobs/jobbase.go index 7b403f76..6b4ee04b 100644 --- a/jobs/jobbase.go +++ b/jobs/jobbase.go @@ -7,7 +7,7 @@ import ( "go-admin/models" "go-admin/pkg" "go-admin/pkg/cronjob" - "reflect" + "sync" "time" ) @@ -15,6 +15,7 @@ var timeFormat = "2006-01-02 15:04:05" var retryCount = 3 var jobList map[string]JobsExec +var lock sync.Mutex type JobCore struct { InvokeTarget string @@ -36,7 +37,9 @@ type ExecJob struct { func (e *ExecJob) Run() { startTime := time.Now() var mp = jobList + lock.Lock() var obj = mp[e.InvokeTarget] + lock.Unlock() CallExec(obj.(JobsExec)) //fmt.Println("CallExec exec success") // 结束时间 @@ -178,19 +181,3 @@ func Stop() chan bool { }() return ch } - -func callReflect(any interface{}, name string, args ...interface{}) []reflect.Value { - inputs := make([]reflect.Value, len(args)) - for i, _ := range args { - inputs[i] = reflect.ValueOf(args[i]) - } - val := reflect.ValueOf(any) - typ := reflect.Indirect(val).Type() - fmt.Println(typ) - if v := reflect.ValueOf(any).MethodByName(name); v.String() == "" { - return nil - } else { - return v.Call(inputs) - } - -}