/// <summary> /// 删除节点 /// </summary> /// <param name="tid"></param> /// <returns></returns> public async Task <string> DelServiceNodeAsync(long tid) { var node = await this.Entitys.Nodes.FindByBkAsync(tid); var result = this.DB.Delete(node) > 0; if (result) { if (node.Type.Equals((int)NodeTypeEnum.Consul)) { //N:innovationwork.cloudbag.v1.cloudbagrestfulapi|A:[http://192.168.1.2:8088/] //注销服务 var service = ConsulClient.GetService(node.ServiceFullName, "N:{0}|A:[{1}]".Args(node.ServiceFullName, node.Url)); if (service != null) { ConsulClient.UnregisterService(service.ServiceID); } } else { SignalRUtil.PushServerToGroup(node.ServiceFullName, GetServerNodeList(node.ServiceFullName)); } return(string.Empty); } return(Tip.DeleteError); }
/// <summary> /// 添加或修改节点 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <string> ModifyServiceNodeAsync(Node model) { if (model == null || string.IsNullOrEmpty(model.ServiceFullName)) { return(Tip.BadRequest); } if (model.Tid > 0) { var entity = await this.Entitys.Nodes.FirstOrDefaultAsync(r => r.Url.Equals(model.Url) && !r.Tid.Equals(model.Tid)); if (entity != null) { return(Tip.IsExist); } model.DataChangeLastTime = DateTime.Now; //修改 var update = this.DB.Update(model) > 0; if (!update) { return(Tip.UpdateError); } } else { var entity = await this.Entitys.Nodes.FirstOrDefaultAsync(r => r.Url.Equals(model.Url)); if (entity != null) { return(Tip.IsExist); } model.Type = (int)NodeTypeEnum.SelfRegister; var result = this.DB.Insert(model); if (result < 1) { return(Tip.InsertError); } } SignalRUtil.PushServerToGroup(model.ServiceFullName, GetServerNodeList(model.ServiceFullName)); return(string.Empty); }