LingxinMeng 10 月之前
父節點
當前提交
8b52d527ee
共有 2 個文件被更改,包括 9 次插入5 次删除
  1. 1 0
      aarch64/pjisuv/common/service/rosbag_upload.go
  2. 8 5
      aarch64/pjisuv/master/config/trigger_init.go

+ 1 - 0
aarch64/pjisuv/common/service/rosbag_upload.go

@@ -129,6 +129,7 @@ outLoop:
 			// 在上传完成的包目录同级下添加一个目录同名的json
 			var triggerIds []string
 			for _, label := range currentTimeWindow.Labels {
+
 				if triggerId, ok := masterConfig.LabelMapTriggerId.Load(label); !ok {
 					c_log.GlobalLogger.Errorf("【label】=%v 没有对应的【triggerId】", label)
 				} else {

+ 8 - 5
aarch64/pjisuv/master/config/trigger_init.go

@@ -15,7 +15,7 @@ import (
 )
 
 func InitTriggerConfig() {
-	var triggerLocalPaths []string
+	triggerLocalPathsMapTriggerId := make(map[string]string)
 	c_log.GlobalLogger.Info("主节点加载触发器插件 - 开始。")
 	// 1 获取数采任务的触发器列表
 	cloudTriggers := &config.PlatformConfig.TaskTriggers
@@ -31,7 +31,7 @@ func InitTriggerConfig() {
 		if hasIdDir && hasLabelSo { // 已存在的触发器不需要再次下载
 			triggerLocalPath = soPaths[0]
 			c_log.GlobalLogger.Info("触发器插件从 ", triggerLocalPath, " 存在。")
-			triggerLocalPaths = append(triggerLocalPaths, triggerLocalPath)
+			triggerLocalPathsMapTriggerId[triggerLocalPath] = id
 			continue
 		}
 		label := util.GetFileNameWithoutExtension(config.CloudConfig.TriggersDir + trigger.TriggerScriptPath)
@@ -45,12 +45,12 @@ func InitTriggerConfig() {
 			c_log.GlobalLogger.Error("下载 OSS 上的触发器插件失败:", err)
 			continue
 		}
-		triggerLocalPaths = append(triggerLocalPaths, triggerLocalPath)
+		triggerLocalPathsMapTriggerId[triggerLocalPath] = id
 	}
 
 	success := 0
 	// 加载所有触发器的文件
-	for _, triggerLocalPath := range triggerLocalPaths {
+	for triggerLocalPath, triggerId := range triggerLocalPathsMapTriggerId {
 		// 载入插件到数组
 		open, err := plugin.Open(triggerLocalPath)
 		if err != nil {
@@ -345,11 +345,14 @@ func InitTriggerConfig() {
 			continue
 		}
 
-		_, err = open.Lookup("Label")
+		label, err := open.Lookup("Label")
 		if err != nil {
 			c_log.GlobalLogger.Error("加载本地插件 ", triggerLocalPath, " 中的 Label 方法失败。", err)
 			continue
 		}
+		labelFunc := label.(func() string)
+		labelString := labelFunc()
+		LabelMapTriggerId.Store(labelString, triggerId)
 		success++
 	}
 	c_log.GlobalLogger.Info("一共应加载", len(config.PlatformConfig.TaskTriggers), "个触发器,实际加载 ", success, " 个触发器。")