| | |
| | | package tasktag |
| | | |
| | | import ( |
| | | "fmt" |
| | | "sync" |
| | | |
| | | "basic.com/pubsub/protomsg.git" |
| | | "github.com/long/test/util" |
| | | "taskpubsub/logger" |
| | | "taskpubsub/util" |
| | | ) |
| | | |
| | | var TaskMapLab = make(map[string]*protomsg.TaskLabel) |
| | | var TaskLabelMap sync.Map |
| | | |
| | | func Init() { |
| | | |
| | | var tls []protomsg.TaskLabel |
| | | fmt.Println("============= init tasktag info =====================") |
| | | |
| | | for _, taskSdk := range util.TaskSdks { |
| | | var tl protomsg.TaskLabel |
| | | tl.Taskid = taskSdk.Task.Taskid |
| | | for _, sdkinfo := range taskSdk.Sdks { |
| | | tl.Sdkids = append(tl.Sdkids, sdkinfo.Id) |
| | | logger.Info("============= init tasktag info =====================") |
| | | genTaskLabelMap() |
| | | go func(taskflag chan bool) { |
| | | for _ = range taskflag { |
| | | genTaskLabelMap() |
| | | logger.Info("update task finished!") |
| | | } |
| | | tl.Index = int32(0) |
| | | tls = append(tls, tl) |
| | | } |
| | | |
| | | GenTasklab(tls) |
| | | |
| | | for key, value := range TaskMapLab { |
| | | fmt.Println() |
| | | fmt.Println(key, value) |
| | | } |
| | | }(util.TaskSdkflag) |
| | | } |
| | | |
| | | // 从sqlite 接口拿到所有的任务, 每一个任务都有自己的几个算法 |
| | | //以 taskid 作为key, 对应的算法组合作为 value |
| | | func GenTasklab(tasklab []protomsg.TaskLabel) { |
| | | for _, value := range tasklab { |
| | | func genTaskLabelMap() { |
| | | var newtls []protomsg.TaskLabel |
| | | for _, taskSdk := range util.TaskSdks { |
| | | |
| | | var tl protomsg.TaskLabel |
| | | tl.Taskid = taskSdk.Task.Taskid |
| | | tl.Taskname = taskSdk.Task.Taskname |
| | | |
| | | for _, sdkinfo := range taskSdk.Sdks { |
| | | sdkinfowithtask := new(protomsg.SdkmsgWithTask) |
| | | sdkinfowithtask.Ipcid = sdkinfo.IpcId |
| | | sdkinfowithtask.Sdktype = sdkinfo.SdkType |
| | | logger.Info("======sdkinfowithtask.Sdktype:", sdkinfowithtask.Sdktype) |
| | | sdkinfowithtask.Sdkdata = make([]byte, 1) |
| | | tl.Sdkinfos = append(tl.Sdkinfos, sdkinfowithtask) |
| | | } |
| | | tl.Index = int32(0) |
| | | newtls = append(newtls, tl) |
| | | } |
| | | updateTaskLabelMap(newtls) |
| | | TaskLabelMap.Range(func(k, v interface{}) bool { |
| | | logger.Info(k, v) |
| | | return true |
| | | }) |
| | | } |
| | | |
| | | func updateTaskLabelMap(taskLabel []protomsg.TaskLabel) { |
| | | TaskLabelMap.Range(func(key interface{}, value interface{}) bool { |
| | | TaskLabelMap.Delete(key) |
| | | return true |
| | | }) |
| | | |
| | | for _, value := range taskLabel { |
| | | pv := value |
| | | TaskMapLab[value.Taskid] = &pv |
| | | TaskLabelMap.Store(value.Taskid, &pv) |
| | | } |
| | | } |