public class RateLimiter<Rejected extends java.lang.Enum<Rejected>> extends java.lang.Object implements BackPressure<Rejected>
| Constructor and Description |
|---|
RateLimiter(Rejected rejectedReason,
long allowedPerPeriod,
long duration,
java.util.concurrent.TimeUnit timeUnit) |
| Modifier and Type | Method and Description |
|---|---|
Rejected |
acquirePermit(long number,
long nanoTime)
Acquires the request permits for task execution.
|
<Result extends java.lang.Enum<Result> & Failable> |
registerGuardRail(GuardRail<Result,Rejected> guardRail)
This method will register a guard rail with this back pressure mechanism.
|
void |
releasePermit(long number,
Failable result,
long nanoTime)
Releases permits while considering the result of the execution.
|
void |
releasePermit(long number,
long nanoTime)
Releases permits without considering the result of the execution.
|
public RateLimiter(Rejected rejectedReason, long allowedPerPeriod, long duration, java.util.concurrent.TimeUnit timeUnit)
public Rejected acquirePermit(long number, long nanoTime)
BackPressureacquirePermit in interface BackPressure<Rejected extends java.lang.Enum<Rejected>>number - of permits requestednanoTime - currentInterval nanosecond timepublic void releasePermit(long number,
long nanoTime)
BackPressurereleasePermit in interface BackPressure<Rejected extends java.lang.Enum<Rejected>>number - of permits to releasenanoTime - currentInterval nanosecond timepublic void releasePermit(long number,
Failable result,
long nanoTime)
BackPressurereleasePermit in interface BackPressure<Rejected extends java.lang.Enum<Rejected>>number - of permits to releaseresult - of the task executionnanoTime - currentInterval nanosecond timepublic <Result extends java.lang.Enum<Result> & Failable> void registerGuardRail(GuardRail<Result,Rejected> guardRail)
BackPressureregisterGuardRail in interface BackPressure<Rejected extends java.lang.Enum<Rejected>>guardRail - the guard rail registeredCopyright © 2014 Tim Brooks. All Rights Reserved.