public TryAcquireCapacity ( |
||
retryCapacity | Contains the RetryCapacity object for the said ServiceURL. | |
return | bool |
public bool TryAcquireCapacity(RetryCapacity retryCapacity)
{
if (THROTTLE_RETRY_REQUEST_COST < 0)
{
return false;
}
lock (retryCapacity)
{
if (retryCapacity.AvailableCapacity - THROTTLE_RETRY_REQUEST_COST >= 0)
{
retryCapacity.AvailableCapacity -= THROTTLE_RETRY_REQUEST_COST;
return true;
}
else
{
return false;
}
}
}
public override bool OnRetry(IExecutionContext executionContext) { if (executionContext.RequestContext.ClientConfig.ThrottleRetries && _retryCapacity != null) { return(_capacityManagerInstance.TryAcquireCapacity(_retryCapacity)); } return(true); }