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);
        }
Ejemplo n.º 3
0
    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());
    }