private void setTargetHealthSerive() { lock (obj) { //判断是否新增节点 int count = HealthServices.Except(TargetSpiderService.ServiceEntryies.Distinct()).Count(); if (count == 0) { return; } TargetSpiderService.ServiceEntryies.Clear(); var weights = HealthServices.Select(o => o.Weight).ToArray(); int maxFactor = maxCommonFactor(weights); foreach (var item in HealthServices) { int num = item.Weight / maxFactor; for (int i = 0; i < num; i++) { SpiderServiceEntry spiderServiceEntry = new SpiderServiceEntry(item.Url) { Weight = item.Weight, IsHealth = item.IsHealth }; TargetSpiderService.ServiceEntryies.Add(spiderServiceEntry); } } } }
public string GetServiceIp(object param = null) { if (param == null) { throw new ArgumentNullException(nameof(param)); } if (HealthServices.Count == 0) { throw new NotFoundServiceException(SpiderService.ServiceName); } var ip = _requestStrategy.GetServiceIp(); var targetIp = dictionary.GetOrAdd(param.ToString(), ip); if (!HealthServices.Any(o => o.Url == targetIp)) { targetIp = GetServiceIp(param); } return(targetIp); }
public override string ToString() { return("Wealth=" + Wealth.ToString() + "\n" + "Wealth=" + Police.ToString() + "\n" + "Wealth=" + Heterogenity.ToString() + "\n" + "Wealth=" + Pollution.ToString() + "\n" + "Wealth=" + Corruption.ToString() + "\n\n" + "Wealth=" + Infrastructure.ToString() + "\n" + "Wealth=" + HealthServices.ToString() + "\n" + "Wealth=" + Crime.ToString() + "\n" + "Wealth=" + Religion.ToString() + "\n" + "Wealth=" + Food.ToString() + "\n" + "Wealth=" + Cleanness.ToString() + "\n" + "Wealth=" + Employment.ToString() + "\n" + "Wealth=" + Information.ToString() + "\n\n" + "Wealth=" + Nourishment.ToString() + "\n" + "Wealth=" + Health.ToString() + "\n" + "Wealth=" + Shelter.ToString() + "\n" + "Wealth=" + Trust.ToString() + "\n" + "Wealth=" + Safety.ToString()); }