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(); }
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))); }
public LeaseBasedQueueBalancerForTest(string name, IGrainFactory grainFactory) { this.leaseManagerGrain = grainFactory.GetGrain <ILeaseManagerGrain>(name); this.id = $"{name}-{Guid.NewGuid()}"; }