@ThreadSafe
public class NonBlockingRateLimiter
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static long |
NANOS_PER_SECOND |
static NonBlockingRateLimiter |
NO_OP_LIMITER |
Constructor and Description |
---|
NonBlockingRateLimiter(int permitsPerSecond) |
NonBlockingRateLimiter(int permitsPerSecond,
long burstNanos,
com.google.common.base.Ticker ticker) |
Modifier and Type | Method and Description |
---|---|
long |
getIntervalNanos() |
int |
getRate() |
long |
getStartedNanos() |
long |
reserveAndGetDelay(java.util.concurrent.TimeUnit delayUnit)
Reserves a single permit slot on the timeline which may not yet be available.
|
void |
setRate(int permitsPerSecond) |
void |
setRate(int permitsPerSecond,
com.google.common.base.Ticker ticker) |
boolean |
tryReserve()
Reserves a single permit slot on the timeline, but only if one is available.
|
public static final long NANOS_PER_SECOND
public static final NonBlockingRateLimiter NO_OP_LIMITER
public NonBlockingRateLimiter(int permitsPerSecond)
public NonBlockingRateLimiter(int permitsPerSecond, long burstNanos, com.google.common.base.Ticker ticker)
public void setRate(int permitsPerSecond)
public void setRate(int permitsPerSecond, com.google.common.base.Ticker ticker)
public int getRate()
public long reserveAndGetDelay(java.util.concurrent.TimeUnit delayUnit)
public boolean tryReserve()
public long getIntervalNanos()
public long getStartedNanos()
Copyright © 2009-2022 The Apache Software Foundation