Esempio n. 1
0
        public RemainingWorkEstimatorCore(
            DocumentServiceLeaseContainer leaseContainer,
            Func <string, string, bool, FeedIterator> feedCreator,
            int degreeOfParallelism)
        {
            if (leaseContainer == null)
            {
                throw new ArgumentNullException(nameof(leaseContainer));
            }

            if (feedCreator == null)
            {
                throw new ArgumentNullException(nameof(feedCreator));
            }

            if (degreeOfParallelism < 1)
            {
                throw new ArgumentOutOfRangeException("Degree of parallelism is out of range", nameof(degreeOfParallelism));
            }

            this.leaseContainer      = leaseContainer;
            this.feedCreator         = feedCreator;
            this.degreeOfParallelism = degreeOfParallelism;
        }
Esempio n. 2
0
        public PartitionLoadBalancerCore(
            PartitionController partitionController,
            DocumentServiceLeaseContainer leaseContainer,
            LoadBalancingStrategy partitionLoadBalancingStrategy,
            TimeSpan leaseAcquireInterval)
        {
            if (partitionController == null)
            {
                throw new ArgumentNullException(nameof(partitionController));
            }
            if (leaseContainer == null)
            {
                throw new ArgumentNullException(nameof(leaseContainer));
            }
            if (partitionLoadBalancingStrategy == null)
            {
                throw new ArgumentNullException(nameof(partitionLoadBalancingStrategy));
            }

            this.partitionController            = partitionController;
            this.leaseContainer                 = leaseContainer;
            this.partitionLoadBalancingStrategy = partitionLoadBalancingStrategy;
            this.leaseAcquireInterval           = leaseAcquireInterval;
        }