From a61cd237d45c7bec7a3e0cdf32ed33c49b41b73b Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期一, 16 十二月 2019 17:41:12 +0800
Subject: [PATCH] update
---
tasktag/tasktag.go | 80 ++++++++++++++++++++++++---------------
1 files changed, 49 insertions(+), 31 deletions(-)
diff --git a/tasktag/tasktag.go b/tasktag/tasktag.go
index fe83e45..dca8b78 100644
--- a/tasktag/tasktag.go
+++ b/tasktag/tasktag.go
@@ -1,45 +1,63 @@
package tasktag
import (
- "fmt"
+ "sync"
+
+ "basic.com/pubsub/protomsg.git"
+ "basic.com/valib/logger.git"
+ "taskpubsub/util"
)
-/* 浠诲姟鏍囩鐢熸垚鍣�
- * 鎻忚堪锛� 鐢ㄤ簬鍦ㄦ暟鎹繘鍏ュ埌鐗瑰畾鐨則ask鏃讹紝 缁欒繖涓暟鎹姞涓婁换鍔℃爣绛撅紝杩欐牱灏辫兘鐭ラ亾绠楁硶娴佺▼浜�
- */
+var TaskLabelMap sync.Map
-type TaskLabel struct {
- Taskid string
- Sdkids []string
- Index int
-}
-
-var TaskMapLab = make(map[string]TaskLabel)
-
-//
func Init() {
- var tls []TaskLabel
- sdk1 := "812b674b-2375-4589-919a-5c1c3278a972"
- sdk2 := "812b674b-2375-4589-919a-5c1c3278a971"
-
- task1 := TaskLabel{"5b0902ae-b1bd-43c0-816d-0a87f1f859d1", []string{sdk1, sdk2}, 0}
- tls = append(tls, task1)
-
- task2 := TaskLabel{"5b0902ae-b1bd-43c0-816d-0a87f1f859d2", []string{sdk2}, 0}
- tls = append(tls, task2)
-
- GenTasklab(tls)
- for key, value := range TaskMapLab {
- fmt.Println()
- fmt.Println(key, value)
- }
+ logger.Info("============= init tasktag info =====================")
+ genTaskLabelMap()
+ go func(taskflag chan bool) {
+ for _ = range taskflag {
+ genTaskLabelMap()
+ logger.Info("update task finished!")
+ }
+ }(util.TaskSdkflag)
}
// 浠巗qlite 鎺ュ彛鎷垮埌鎵�鏈夌殑浠诲姟, 姣忎竴涓换鍔¢兘鏈夎嚜宸辩殑鍑犱釜绠楁硶
//浠� taskid 浣滀负key, 瀵瑰簲鐨勭畻娉曠粍鍚堜綔涓� value
-func GenTasklab(tasklab []TaskLabel) {
- for _, value := range tasklab {
- TaskMapLab[value.Taskid] = value
+func genTaskLabelMap() {
+ var newtls []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
+ logger.Info("======sdkinfowithtask.Sdktype:", sdkinfowithtask.Sdktype)
+ sdkinfowithtask.Sdkdata = make([]byte, 1)
+ tl.Sdkinfos = append(tl.Sdkinfos, sdkinfowithtask)
+ }
+ tl.Index = int32(0)
+ newtls = append(newtls, tl)
+ }
+ updateTaskLabelMap(newtls)
+ TaskLabelMap.Range(func(k, v interface{}) bool {
+ logger.Info(k, v)
+ return true
+ })
+}
+
+func updateTaskLabelMap(taskLabel []protomsg.TaskLabel) {
+ TaskLabelMap.Range(func(key interface{}, value interface{}) bool {
+ TaskLabelMap.Delete(key)
+ return true
+ })
+
+ for _, value := range taskLabel {
+ pv := value
+ TaskLabelMap.Store(value.Taskid, &pv)
}
}
--
Gitblit v1.8.0