From d7ee5b3444e7681cfb4574681d54156e148c34da Mon Sep 17 00:00:00 2001
From: 龙赣华 <slongertian@gmail.com>
Date: 星期三, 05 六月 2019 11:47:24 +0800
Subject: [PATCH] by 192.168.1.124

---
 tasktag/tasktag.go |   64 +++++++++++++++++++++++--------
 1 files changed, 47 insertions(+), 17 deletions(-)

diff --git a/tasktag/tasktag.go b/tasktag/tasktag.go
index 24fb853..5f6cb8e 100644
--- a/tasktag/tasktag.go
+++ b/tasktag/tasktag.go
@@ -2,36 +2,66 @@
 
 import (
 	"fmt"
+	"sync"
 
-	"github.com/long/test/protomsg"
+	"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() {
+
+	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
-
-	sdk1 := "812b674b-2375-4589-919a-5c1c3278a972"
-	sdk2 := "812b674b-2375-4589-919a-5c1c3278a971"
-
-	task1 := protomsg.TaskLabel{Taskid: "5b0902ae-b1bd-43c0-816d-0a87f1f859d1", Sdkids: []string{sdk1, sdk2}, Index: int32(0)}
-	tls = append(tls, task1)
-
-	task2 := protomsg.TaskLabel{Taskid: "5b0902ae-b1bd-43c0-816d-0a87f1f859d2", Sdkids: []string{sdk1}, Index: int32(0)}
-	tls = append(tls, task2)
+	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)
-	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)
+	//}
 }
 
 // 浠巗qlite 鎺ュ彛鎷垮埌鎵�鏈夌殑浠诲姟, 姣忎竴涓换鍔¢兘鏈夎嚜宸辩殑鍑犱釜绠楁硶
 //浠� 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 {
-		TaskMapLab[value.Taskid] = &value
+		pv := value
+		TaskMapLab.Store(value.Taskid, &pv)
+		//TaskMapLab[value.Taskid] = &pv
 	}
 }

--
Gitblit v1.8.0