package tasktag import ( "fmt" "sync" "basic.com/pubsub/protomsg.git" "github.com/long/test/util" ) //var TaskMapLab = make(map[string]*protomsg.TaskLabel) var TaskMapLab sync.Map func Init() { fmt.Println("============= init tasktag info =====================") GenTaskMap() go func(taskflag chan bool) { for _ = range taskflag { GenTaskMap() fmt.Println("update task finished!") } }(util.TaskSdkflag) } func GenTaskMap() { var tls []protomsg.TaskLabel 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) } tl.Index = int32(0) tls = append(tls, tl) } GenTasklab(tls) TaskMapLab.Range(func(k, v interface{}) bool { fmt.Println(k, v) return true }) //for key, value := range TaskMapLab { // fmt.Println() // fmt.Println(key, value) //} } // 从sqlite 接口拿到所有的任务, 每一个任务都有自己的几个算法 //以 taskid 作为key, 对应的算法组合作为 value func GenTasklab(tasklab []protomsg.TaskLabel) { // TaskMapLab = nil // TaskMapLab = make(map[string]*protomsg.TaskLabel) TaskMapLab.Range(func(key interface{}, value interface{}) bool { TaskMapLab.Delete(key) return true }) for _, value := range tasklab { pv := value TaskMapLab.Store(value.Taskid, &pv) //TaskMapLab[value.Taskid] = &pv } }