public IEnumerable <QueueId> GetMyQueues() { lock (activeSiloNames) { List <QueueId> queues; if (resourceBalancer.GetDistribution(activeSiloNames).TryGetValue(mySiloName, out queues)) { return(queues); } } return(Enumerable.Empty <QueueId>()); }
public override IEnumerable <QueueId> GetMyQueues() { BestFitBalancer <string, QueueId> balancer = GetBalancer(); bool useIdealDistribution = this.options.IsFixed || isStarting; Dictionary <string, List <QueueId> > distribution = useIdealDistribution ? balancer.IdealDistribution : balancer.GetDistribution(GetActiveSilos(siloStatusOracle, immatureSilos)); List <QueueId> myQueues; if (distribution.TryGetValue(siloStatusOracle.SiloName, out myQueues)) { if (!useIdealDistribution) { HashSet <QueueId> queuesOfImmatureSilos = GetQueuesOfImmatureSilos(siloStatusOracle, immatureSilos, balancer.IdealDistribution); // filter queues that belong to immature silos myQueues.RemoveAll(queue => queuesOfImmatureSilos.Contains(queue)); } return(myQueues); } return(Enumerable.Empty <QueueId>()); }