mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-06 10:00:24 +08:00
修复DataMap无法在多个节点之间共享的问题
This commit is contained in:
@@ -967,6 +967,11 @@ func (this *NodeDAO) ComposeNodeConfig(tx *dbs.Tx, nodeId int64, dataMap *shared
|
|||||||
cacheMap = utils.NewCacheMap()
|
cacheMap = utils.NewCacheMap()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 放入到缓存中,以便于后面继续使用
|
||||||
|
if dataMap != nil {
|
||||||
|
cacheMap.Put("DataMap", dataMap)
|
||||||
|
}
|
||||||
|
|
||||||
node, err := this.FindEnabledNode(tx, nodeId)
|
node, err := this.FindEnabledNode(tx, nodeId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
@@ -70,6 +70,19 @@ func TestNodeDAO_ComposeNodeConfig(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
t.Log(len(data), "bytes")
|
t.Log(len(data), "bytes")
|
||||||
|
|
||||||
|
{
|
||||||
|
nodeConfig, err = models.SharedNodeDAO.ComposeNodeConfig(tx, 148, dataMap, cacheMap)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
t.Log(len(nodeConfig.DataMap.Map), "items in dataMap")
|
||||||
|
data, err = json.Marshal(nodeConfig)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
t.Log(len(data), "bytes")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNodeDAO_ComposeNodeConfig_ParentNodes(t *testing.T) {
|
func TestNodeDAO_ComposeNodeConfig_ParentNodes(t *testing.T) {
|
||||||
|
|||||||
@@ -743,11 +743,27 @@ func (this *NodeService) FindCurrentNodeConfig(ctx context.Context, req *pb.Find
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
var cacheMap = this.findClusterCacheMap(clusterId, req.NodeTaskVersion)
|
||||||
var dataMap *shared.DataMap
|
var dataMap *shared.DataMap
|
||||||
if req.UseDataMap {
|
if req.UseDataMap {
|
||||||
|
// 是否有共用的
|
||||||
|
if cacheMap != nil {
|
||||||
|
cachedDataMap, ok := cacheMap.Get("DataMap")
|
||||||
|
if ok {
|
||||||
|
dataMap = cachedDataMap.(*shared.DataMap)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if dataMap == nil {
|
||||||
dataMap = shared.NewDataMap()
|
dataMap = shared.NewDataMap()
|
||||||
}
|
}
|
||||||
var cacheMap = this.findClusterCacheMap(clusterId, req.NodeTaskVersion)
|
} else {
|
||||||
|
// 如果没有使用DataMap,但是获取的缓存是有DataMap的,需要重新获取
|
||||||
|
_, ok := cacheMap.Get("DataMap")
|
||||||
|
if ok {
|
||||||
|
cacheMap = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
nodeConfig, err := models.SharedNodeDAO.ComposeNodeConfig(tx, nodeId, dataMap, cacheMap)
|
nodeConfig, err := models.SharedNodeDAO.ComposeNodeConfig(tx, nodeId, dataMap, cacheMap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
Reference in New Issue
Block a user