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
|
}
|
}
|