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 |   39 ++++++++++++++++++++++++++++++++-------
 1 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/tasktag/tasktag.go b/tasktag/tasktag.go
index 87b0835..5f6cb8e 100644
--- a/tasktag/tasktag.go
+++ b/tasktag/tasktag.go
@@ -2,18 +2,30 @@
 
 import (
 	"fmt"
+	"sync"
 
 	"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() {
 
-	var tls []protomsg.TaskLabel
 	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
@@ -26,17 +38,30 @@
 
 	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 {
 		pv := value
-		TaskMapLab[value.Taskid] = &pv
+		TaskMapLab.Store(value.Taskid, &pv)
+		//TaskMapLab[value.Taskid] = &pv
 	}
 }

--
Gitblit v1.8.0