龙赣华
2019-06-05 d7ee5b3444e7681cfb4574681d54156e148c34da
tasktag/tasktag.go
@@ -2,18 +2,30 @@
import (
   "fmt"
   "sync"
   "basic.com/pubsub/protomsg.git"
   "github.com/long/test/util"
)
var TaskMapLab = make(map[string]*protomsg.TaskLabel)
//var TaskMapLab = make(map[string]*protomsg.TaskLabel)
var TaskMapLab sync.Map
func Init() {
   var tls []protomsg.TaskLabel
   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
@@ -26,17 +38,30 @@
   GenTasklab(tls)
   for key, value := range TaskMapLab {
      fmt.Println()
      fmt.Println(key, value)
   }
   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[value.Taskid] = &pv
      TaskMapLab.Store(value.Taskid, &pv)
      //TaskMapLab[value.Taskid] = &pv
   }
}