Пример #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);
            }
        }
Пример #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);
        }
Пример #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();
         removeUrls.Remove(url);
         SetNode(url, item.GetNode());
     }
     foreach (string item in removeUrls)
     {
         RemoveNode(item);
     }
 }