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); } }
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); }
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); } }