龙赣华
2019-06-05 d7ee5b3444e7681cfb4574681d54156e148c34da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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
    }
}