|
@@ -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, " 个触发器。")
|