static final class SmoothRateLimiter.SmoothWarmingUp extends SmoothRateLimiter
SmoothRateLimiter.SmoothBursty, SmoothRateLimiter.SmoothWarmingUpRateLimiter.SleepingStopwatch| Modifier and Type | Field and Description |
|---|---|
private double |
coldFactor |
private double |
slope
The slope of the line from the stable interval (when permits == 0), to the cold interval
(when permits == maxPermits)
|
private double |
thresholdPermits |
private long |
warmupPeriodMicros |
maxPermits, stableIntervalMicros, storedPermits| Constructor and Description |
|---|
SmoothWarmingUp(RateLimiter.SleepingStopwatch stopwatch,
long warmupPeriod,
java.util.concurrent.TimeUnit timeUnit,
double coldFactor) |
| Modifier and Type | Method and Description |
|---|---|
(package private) double |
coolDownIntervalMicros()
Returns the number of microseconds during cool down that we have to wait to get a new permit.
|
(package private) void |
doSetRate(double permitsPerSecond,
double stableIntervalMicros) |
private double |
permitsToTime(double permits) |
(package private) long |
storedPermitsToWaitTime(double storedPermits,
double permitsToTake)
Translates a specified portion of our currently stored permits which we want to spend/acquire,
into a throttling time.
|
doGetRate, doSetRate, queryEarliestAvailable, reserveEarliestAvailable, resyncacquire, acquire, create, create, create, create, getRate, reserve, reserveAndGetWaitLength, setRate, toString, tryAcquire, tryAcquire, tryAcquire, tryAcquireprivate final long warmupPeriodMicros
private double slope
private double thresholdPermits
private double coldFactor
SmoothWarmingUp(RateLimiter.SleepingStopwatch stopwatch, long warmupPeriod, java.util.concurrent.TimeUnit timeUnit, double coldFactor)
void doSetRate(double permitsPerSecond,
double stableIntervalMicros)
doSetRate in class SmoothRateLimiterlong storedPermitsToWaitTime(double storedPermits,
double permitsToTake)
SmoothRateLimiterThis always holds: 0 <= permitsToTake <= storedPermits
storedPermitsToWaitTime in class SmoothRateLimiterprivate double permitsToTime(double permits)
double coolDownIntervalMicros()
SmoothRateLimitercoolDownIntervalMicros in class SmoothRateLimiter