Class RecyclableRateLimiterWithMetrics
- java.lang.Object
-
- com.google.common.util.concurrent.RecyclableRateLimiterWithMetrics
-
- All Implemented Interfaces:
RecyclableRateLimiter
public class RecyclableRateLimiterWithMetrics extends Object implements RecyclableRateLimiter
A decorator forRecyclableRateLimiterthat adds metrics for permits-related operations.- Author:
- vasily@wavefront.com
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classRecyclableRateLimiterWithMetrics.RateLimiterMetricsContainer
-
Constructor Summary
Constructors Constructor Description RecyclableRateLimiterWithMetrics(RecyclableRateLimiter delegate, String prefix)RecyclableRateLimiterWithMetrics(RecyclableRateLimiter delegate, Supplier<RecyclableRateLimiterWithMetrics.RateLimiterMetricsContainer> metrics)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doubleacquire(int permits)Acquires the requested number of permits, waiting until enough permits are available.doublegetRate()Returns the currently configured rate per second at which new permits become available.booleanimmediatelyAvailable(int permits)Checks whether there's enough permits accumulated to cover the number of requested permits.voidrecyclePermits(int permits)Return the specified number of permits back to the pool.voidsetRate(double rate)Updates the rate for thisRateLimiter.booleantryAcquire(int permits)Acquires the requested number of permits only if can be acquired without wait.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.google.common.util.concurrent.RecyclableRateLimiter
acquire, tryAcquire
-
-
-
-
Constructor Detail
-
RecyclableRateLimiterWithMetrics
public RecyclableRateLimiterWithMetrics(RecyclableRateLimiter delegate, String prefix)
- Parameters:
delegate-RecyclableRateLimiterdelegateprefix- metric prefix
-
RecyclableRateLimiterWithMetrics
public RecyclableRateLimiterWithMetrics(RecyclableRateLimiter delegate, Supplier<RecyclableRateLimiterWithMetrics.RateLimiterMetricsContainer> metrics)
- Parameters:
delegate-RecyclableRateLimiterdelegatemetrics- a supplier with
-
-
Method Detail
-
getRate
public double getRate()
Description copied from interface:RecyclableRateLimiterReturns the currently configured rate per second at which new permits become available.- Specified by:
getRatein interfaceRecyclableRateLimiter- Returns:
- number of permits per second
-
setRate
public void setRate(double rate)
Description copied from interface:RecyclableRateLimiterUpdates the rate for thisRateLimiter.- Specified by:
setRatein interfaceRecyclableRateLimiter- Parameters:
rate- new rate per second
-
acquire
public double acquire(int permits)
Description copied from interface:RecyclableRateLimiterAcquires the requested number of permits, waiting until enough permits are available.- Specified by:
acquirein interfaceRecyclableRateLimiter- Parameters:
permits- number of permits to request- Returns:
- wait time in milliseconds
-
tryAcquire
public boolean tryAcquire(int permits)
Description copied from interface:RecyclableRateLimiterAcquires the requested number of permits only if can be acquired without wait.- Specified by:
tryAcquirein interfaceRecyclableRateLimiter- Parameters:
permits- number of permits to request- Returns:
- true if permits were acquired
-
recyclePermits
public void recyclePermits(int permits)
Description copied from interface:RecyclableRateLimiterReturn the specified number of permits back to the pool.- Specified by:
recyclePermitsin interfaceRecyclableRateLimiter- Parameters:
permits- number of permits to return
-
immediatelyAvailable
public boolean immediatelyAvailable(int permits)
Description copied from interface:RecyclableRateLimiterChecks whether there's enough permits accumulated to cover the number of requested permits.- Specified by:
immediatelyAvailablein interfaceRecyclableRateLimiter- Parameters:
permits- permits to check- Returns:
- true if enough accumulated permits
-
-