Esempio n. 1
0
        public async Task Initialize(string strProviderName,
                                     IStreamQueueMapper queueMapper)
        {
            this.leaseManagerGrain = this.grainFactory.GetGrain <ILeaseManagerGrain>(strProviderName);
            await this.leaseManagerGrain.SetQueuesAsLeases(queueMapper.GetAllQueues());

            this.id = $"{strProviderName}-{Guid.NewGuid()}";
            await GetInitialLease();
        }
Esempio n. 2
0
        public async Task Initialize(string strProviderName,
                                     IStreamQueueMapper queueMapper,
                                     TimeSpan siloMaturityPeriod,
                                     IProviderConfiguration providerConfig)
        {
            this.leaseManagerGrain = this.grainFactory.GetGrain <ILeaseManagerGrain>(strProviderName);
            await this.leaseManagerGrain.SetQueuesAsLeases(queueMapper.GetAllQueues());

            this.id = $"{strProviderName}-{Guid.NewGuid()}";
            await GetInitialLease();
        }
        private async Task <bool> CheckLeases(ILeaseManagerGrain leaseManager, int siloCount, int expectedResponsibilityPerBalancer, bool lastTry)
        {
            Dictionary <string, int> responsibilityMap = await leaseManager.GetResponsibilityMap();

            if (lastTry)
            {
                //there should be one StreamQueueBalancer per silo
                Assert.Equal(responsibilityMap.Count, siloCount);
                foreach (int responsibility in responsibilityMap.Values)
                {
                    Assert.Equal(expectedResponsibilityPerBalancer, responsibility);
                }
            }
            return((responsibilityMap.Count == siloCount) &&
                   (responsibilityMap.Values.All(responsibility => expectedResponsibilityPerBalancer == responsibility)));
        }
Esempio n. 4
0
 public LeaseBasedQueueBalancerForTest(string name, IGrainFactory grainFactory)
 {
     this.leaseManagerGrain = grainFactory.GetGrain <ILeaseManagerGrain>(name);
     this.id = $"{name}-{Guid.NewGuid()}";
 }