@ThreadSafe public final class ThrottlingState extends Object implements BanState, TimeAndErrorsState
| Constructor and Description |
|---|
ThrottlingState(org.isomorphism.util.TokenBucket timeBucket,
org.isomorphism.util.TokenBucket errorsBucket,
org.isomorphism.util.TokenBucket throttleBucket,
Duration banDuration)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
Instant |
bannedUntil()
A user is banned until this instant.
|
void |
consumeError()
Consumes errors from the error bucket.
|
void |
consumeThrottled()
Consume throttled requests.
|
void |
consumeTime(Duration elapsed)
Consumes request time from the time bucket.
|
Instant |
throttledUntil()
A user is throttled until this instant.
|
public ThrottlingState(org.isomorphism.util.TokenBucket timeBucket,
org.isomorphism.util.TokenBucket errorsBucket,
org.isomorphism.util.TokenBucket throttleBucket,
Duration banDuration)
timeBucket - bucket to track requests timeerrorsBucket - bucket to track errorsthrottleBucket - bucket to track throttlingbanDuration - default duration of a banpublic void consumeThrottled()
BanStateconsumeThrottled in interface BanStatepublic Instant bannedUntil()
BanStatebannedUntil in interface BanStateInstant in the past otherwisepublic void consumeTime(Duration elapsed)
TimeAndErrorsStatemin(elapsed.toMillis(), timeBucket.getNumTokens()).consumeTime in interface TimeAndErrorsStateelapsed - time elapsed during the requestpublic void consumeError()
TimeAndErrorsStateconsumeError in interface TimeAndErrorsStatepublic Instant throttledUntil()
TimeAndErrorsStatethrottledUntil in interface TimeAndErrorsStateInstant in the past otherwiseCopyright © 2019. All rights reserved.