public WeightedResponseTimeRuleTest() : base("WeightedResponseTimeRule") { _ping = new EasyHttpPing(_factory, 20); var collector = new DefaultServerStatusCollector(); var accumulater = new DefaultServerWeightAccumulater(collector); var rule = new WeightedResponseTimeRule(accumulater); _loadBalancer = new BaseLoadBalancer(1 * 1000, base._name, rule, _ping, new SerialPingStrategy(), _factory); _command = new LoadBalancerCommand(_loadBalancer, collector, null, null); }
public async void WeightedResponseTimeRuleTest() { var collector = new DefaultServerStatusCollector(); var accumulater = new DefaultServerWeightAccumulater(collector); var rule = new Thrifty.MicroServices.Ribbon.Rules.WeightedResponseTimeRule(accumulater); var balancer = new BaseLoadBalancer(1 * 1000, "demo", rule, Ping, new SerialPingStrategy(), LoggerFactory); accumulater.LoadBalancer = balancer; balancer.AddServers(Servers); var command = new LoadBalancerCommand(balancer, null, null, null); const int count = 1000; var index = 0; while (index++ < count) { Assert.True(await command.Submit(server => Task.FromResult(Ping.IsAlive(server)))); } }