/// <summary>Invoked when service is being started</summary>
        public virtual Task Start()
        {
            RingRange = ring.GetMyRange();
            Logger.Info(ErrorCode.RS_ServiceStarting, "Starting {0} grain service on: {1} x{2,8:X8}, with range {3}", this.typeName, Silo, Silo.GetConsistentHashCode(), RingRange);
            StartInBackground().Ignore();

            return(Task.CompletedTask);
        }
Example #2
0
        public ConsistentRingQueueBalancer(IConsistentRingProvider consistentRingProvider, ILoggerFactory loggerFactory, IServiceProvider services, ILogger <ConsistentRingQueueBalancer> logger)
            : base(services, logger)
        {
            if (consistentRingProvider == null)
            {
                throw new ArgumentNullException("streamProviderRuntime");
            }

            _myRange = consistentRingProvider.GetMyRange();
            consistentRingProvider.SubscribeToRangeChangeEvents(this);
        }
Example #3
0
        /// <summary>Invoked when service is being started</summary>
        /// <returns>A <see cref="Task"/> representing the work performed.</returns>
        public virtual Task Start()
        {
            RingRange = ring.GetMyRange();
            Logger.LogInformation(
                (int)ErrorCode.RS_ServiceStarting,
                "Starting {TypeName} grain service on: {Silo} x{HashCode}, with range {RingRange}",
                this.typeName,
                Silo,
                Silo.GetConsistentHashCode().ToString("X8"),
                RingRange);
            StartInBackground().Ignore();

            return(Task.CompletedTask);
        }
Example #4
0
        private IRingRange CalcMyRange()
        {
            var equallyDevidedMultiRange = RangeFactory.CreateEquallyDividedMultiRange(ringProvider.GetMyRange(), numSubRanges);

            return(equallyDevidedMultiRange.GetSubRange(mySubRangeIndex));
        }