internal int ThrottleResultIfNecessary()

in src/Microsoft.Azure.WebJobs.Extensions.Kafka/Listeners/Scaler/KafkaGenericTargetScaler.cs [131:147]


        internal int ThrottleResultIfNecessary(int targetWorkerCount)
        {
            // Throttle Scale Down if Scale Up has recently occurred.
            if (GetChangeInWorkerCount(targetWorkerCount) < 0)
            {
                var scaleDownThrottleTime = TimeSpan.FromMinutes(1);
                if (lastScaleUpTime != DateTime.MinValue && DateTime.UtcNow - lastScaleUpTime < scaleDownThrottleTime)
                {
                    if (lastTargetScalerResult != null)
                    {
                        targetWorkerCount = lastTargetScalerResult.TargetWorkerCount;
                        logger.LogInformation($"Throttling scale down as last scale up was less than 1 minute ago. Returning last target worker count: {lastTargetScalerResult.TargetWorkerCount}");
                    }
                }
            }
            return targetWorkerCount;
        }