554325746@qq.com
2019-07-10 7183fd16c435d2aaf85e24d3608c5c43645ee608
tasktag/tasktag.go
@@ -2,44 +2,62 @@
import (
   "fmt"
   "sync"
   "basic.com/pubsub/protomsg.git"
   "github.com/long/test/util"
)
/* 任务标签生成器
 *  描述: 用于在数据进入到特定的task时, 给这个数据加上任务标签,这样就能知道算法流程了
 */
var TaskMapLab sync.Map
type TaskLabel struct {
   Taskid string
   Sdkids []string
   Index  int
func Init() {
   fmt.Println("============= init tasktag info =====================")
   GenTaskMap()
   go func(taskflag chan bool) {
      for _ = range taskflag {
         GenTaskMap()
         fmt.Println("update task finished!")
      }
   }(util.TaskSdkflag)
}
var TaskMapLab = make(map[string]TaskLabel)
func GenTaskMap() {
   var tls []protomsg.TaskLabel
   for _, taskSdk := range util.TaskSdks {
//
func Init() {
   var tls []TaskLabel
      var tl protomsg.TaskLabel
      tl.Taskid = taskSdk.Task.Taskid
        tl.Taskname = taskSdk.Task.Taskname
   sdk1 := "812b674b-2375-4589-919a-5c1c3278a972"
   sdk2 := "812b674b-2375-4589-919a-5c1c3278a971"
   task1 := TaskLabel{"5b0902ae-b1bd-43c0-816d-0a87f1f859d1", []string{sdk1, sdk2}, 0}
   tls = append(tls, task1)
   task2 := TaskLabel{"5b0902ae-b1bd-43c0-816d-0a87f1f859d2", []string{sdk2}, 0}
   tls = append(tls, task2)
   GenTasklab(tls)
   for key, value := range TaskMapLab {
      fmt.Println()
      fmt.Println(key, value)
      for _, sdkinfo := range taskSdk.Sdks {
            sdkinfowithtask := new(protomsg.SdkmsgWithTask)
            sdkinfowithtask.Ipcid = sdkinfo.IpcId
            sdkinfowithtask.Sdktype = sdkinfo.SdkType
            sdkinfowithtask.Sdkdata = make([]byte, 1)
            tl.Sdkinfos = append(tl.Sdkinfos, sdkinfowithtask)
      }
      tl.Index = int32(0)
      tls = append(tls, tl)
   }
   GenTasklab(tls)
   TaskMapLab.Range(func(k, v interface{}) bool {
      fmt.Println(k, v)
      return true
   })
}
// 从sqlite 接口拿到所有的任务, 每一个任务都有自己的几个算法
//以 taskid 作为key, 对应的算法组合作为 value
func GenTasklab(tasklab []TaskLabel) {
func GenTasklab(tasklab []protomsg.TaskLabel) {
   TaskMapLab.Range(func(key interface{}, value interface{}) bool {
      TaskMapLab.Delete(key)
      return true
   })
   for _, value := range tasklab {
      TaskMapLab[value.Taskid] = value
      pv := value
      TaskMapLab.Store(value.Taskid, &pv)
   }
}