@InterfaceAudience.Private @InterfaceStability.Evolving public abstract class RateLimiter extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
QUOTA_RATE_LIMITER_CONF_KEY |
Constructor and Description |
---|
RateLimiter() |
Modifier and Type | Method and Description |
---|---|
boolean |
canExecute()
Is there at least one resource available to allow execution?
|
boolean |
canExecute(long amount)
Are there enough available resources to allow execution?
|
void |
consume()
consume one available unit.
|
void |
consume(long amount)
consume amount available units, amount could be a negative number
|
long |
getAvailable() |
long |
getLimit() |
abstract long |
getNextRefillTime() |
protected long |
getTimeUnitInMillis() |
boolean |
isBypass() |
void |
set(long limit,
java.util.concurrent.TimeUnit timeUnit)
Set the RateLimiter max available resources and refill period.
|
abstract void |
setNextRefillTime(long nextRefillTime) |
java.lang.String |
toString() |
void |
update(RateLimiter other)
Sets the current instance of RateLimiter to a new values.
|
long |
waitInterval() |
long |
waitInterval(long amount) |
public static final java.lang.String QUOTA_RATE_LIMITER_CONF_KEY
public void set(long limit, java.util.concurrent.TimeUnit timeUnit)
limit
- The max value available resource units can be refilled to.timeUnit
- Timeunit factor for translating to ms.public java.lang.String toString()
toString
in class java.lang.Object
public void update(RateLimiter other)
public boolean isBypass()
public long getLimit()
public long getAvailable()
protected long getTimeUnitInMillis()
public boolean canExecute()
public boolean canExecute(long amount)
amount
- the number of required resources, a non-negative numberpublic void consume()
public void consume(long amount)
amount
- the number of units to consumepublic long waitInterval()
public long waitInterval(long amount)
public abstract void setNextRefillTime(long nextRefillTime)
public abstract long getNextRefillTime()