package tasktag
|
|
import (
|
"sync"
|
|
"basic.com/pubsub/protomsg.git"
|
"github.com/long/test/util"
|
"github.com/long/test/logger"
|
)
|
|
var TaskMapLab sync.Map
|
|
func Init() {
|
|
logger.Info("============= init tasktag info =====================")
|
GenTaskMap()
|
go func(taskflag chan bool) {
|
for _ = range taskflag {
|
GenTaskMap()
|
logger.Info("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
|
tl.Taskname = taskSdk.Task.Taskname
|
|
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 {
|
logger.Info(k, v)
|
return true
|
})
|
}
|
|
// 从sqlite 接口拿到所有的任务, 每一个任务都有自己的几个算法
|
//以 taskid 作为key, 对应的算法组合作为 value
|
func GenTasklab(tasklab []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)
|
}
|
}
|