tryAcquire method
Try to acquire tokens tokens. Returns true if successful.
Implementation
bool tryAcquire([int tokens = 1]) {
if (!enabled) {
_debugLog('Rate limiting disabled, allowing acquire');
onMetrics?.call(availableTokens, true);
return true;
}
_refillTokens();
if (_tokens >= tokens) {
_tokens -= tokens;
_debugLog('Acquired $tokens token(s), ${_tokens.toStringAsFixed(2)} remaining');
onMetrics?.call(availableTokens, true);
return true;
}
_debugLog('Failed to acquire $tokens token(s), '
'only ${_tokens.toStringAsFixed(2)} available');
onMetrics?.call(availableTokens, false);
return false;
}