Ejemplo n.º 1
0
        private async void OnUploadNode_Callback(object sate)
        {
            mUploadNodeTimer.Change(-1, -1);
            try
            {
                var info = await NodeSourceHandler.Load();

                if (info.Version != mLastClusterInfo.Version)
                {
                    mLastClusterInfo = info;
                    UpdateNodeInfo(info);
                }
                UpdateSuccess = true;
                UpdateExption = null;
            }
            catch (Exception e_)
            {
                UpdateSuccess = false;
                UpdateExption = e_;
            }
            finally
            {
                mUploadNodeTimer.Change(NodeSourceHandler.UpdateTime * 1000, NodeSourceHandler.UpdateTime * 1000);
            }
        }
Ejemplo n.º 2
0
        public async Task <HttpClusterApi> LoadNodeSource(INodeSourceHandler nodeSourceHandler)
        {
            NodeSourceHandler = nodeSourceHandler;
            var info = await NodeSourceHandler.Load();

            UpdateNodeInfo(info);
            mLastClusterInfo = info;
            mUploadNodeTimer = new System.Threading.Timer(OnUploadNode_Callback, null, NodeSourceHandler.UpdateTime * 1000, NodeSourceHandler.UpdateTime * 1000);
            return(this);
        }
Ejemplo n.º 3
0
        private void UpdateNodeInfo(ApiClusterInfo info)
        {
            List <string> removeUrls = new List <string>();

            removeUrls.Add("*");
            foreach (string key in mNodes.Keys)
            {
                removeUrls.Add(key);
            }
            foreach (var item in info.Urls)
            {
                string url = item.Name.ToLower();
                if (item.Hosts.Count > 0)
                {
                    removeUrls.Remove(url);
                    SetNode(url, item.GetNode());
                }
            }
            foreach (string item in removeUrls)
            {
                RemoveNode(item);
            }
            ChangeVersion();
        }