liuxiaolong
2020-01-14 0a79992edbc0406d274626c5ad86691b7c5c1fa7
add aliveNodes
1个文件已修改
31 ■■■■ 已修改文件
mangos.go 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mangos.go
@@ -55,33 +55,30 @@
                    discoveryServer.PublishMsg(string(sendB))
                }
            default:
                nodeIds := discoveryServer.AliveNodes().ToSlice()
                if len(nodeIds) >0 {
                    //for _,nodeId := range nodeIds {
                    //    if _,ok := clientMsgCh[nodeId]; !ok {
                    //        clientMsgCh[nodeId] = make(chan Message)
                    //    }
                    //}
                nodeIds := discoveryServer.AliveNodes()
                    if cacheNodes.Cardinality() == 0 { //第一次有上线的节点
                        if len(msgCache) > 0 {
                            for _,cMsg := range msgCache {
                                sendB, _ := json.Marshal(cMsg)
                                discoveryServer.PublishMsg(string(sendB))
                            }
                //for _,nodeId := range nodeIds {
                //    if _,ok := clientMsgCh[nodeId]; !ok {
                //        clientMsgCh[nodeId] = make(chan Message)
                //    }
                //}
                if len(cacheNodes.Difference(nodeIds).ToSlice()) > 0 { //节点有变化的时候,也需要发消息
                    fmt.Println("aliveNodes:",nodeIds)
                    if len(msgCache) > 0 {
                        for _,cMsg := range msgCache {
                            sendB, _ := json.Marshal(cMsg)
                            discoveryServer.PublishMsg(string(sendB))
                        }
                    }
                    cacheNodes = discoveryServer.AliveNodes()
                } else {
                    cacheNodes = discoveryServer.AliveNodes()
                    time.Sleep(10 * time.Millisecond)
                }
                cacheNodes = discoveryServer.AliveNodes()
            }
        }
    }()
    go func() {
    }()
    return pub,nil
}