Bucket.addTokens(long)
, follows the same semantic.Bucket.addTokens(long)
Bucket.addTokens(long)
BlockingBucket
view of this bucket, that provides operations which are able to block caller thread.AsyncBucket
API.GridBucket
found that bucket state has been lost,
and GridBucket
is unable to repair bucket state or recovery strategy is RecoveryStrategy.THROW_BUCKET_NOT_FOUND_EXCEPTION
.ConfigurationBuilder
BlockingBucket.consume(long, BlockingStrategy)
Bucket.consumeIgnoringRateLimits(long)
, follows the same semantic.Bucket.consumeIgnoringRateLimits(long)
tokens
from bucket ignoring all limits.Bucket.consumeIgnoringRateLimits(long)
BlockingBucket.consume(long, BlockingStrategy)
but ignores interrupts(just restores interruption flag on exit).BlockingBucket.consumeUninterruptibly(long, UninterruptibleBlockingStrategy)
Bucket.estimateAbilityToConsume(long)
, follows the same semantic.Bucket.estimateAbilityToConsume(long)
Bucket.estimateAbilityToConsume(long)
extensionClass
.SynchronizationStrategy.NONE
Bucket.getAvailableTokens()
ConsumptionProbe.isConsumed()
returns true, else time in nanos which need to wait until requested amount of tokens will be refilledEstimationProbe.canBeConsumed()
returns true, else time in nanos which need to wait until requested amount of tokens will be refilledRefill
that does refill of tokens in greedy manner,
it will try to add the tokens to bucket as soon as possible.Refill
that does refill of tokens in intervally manner.Refill
that does refill of tokens in intervally manner.true
if implementation of clock behaves the similar way as System.currentTimeMillis()
,
in other words if implementation can be used as wall clock.LockFreeBucket
).tokens
is consumed.ScheduledExecutorService
because of wait for tokens refill
in result of interaction with AsyncScheduledBucket
BlockingBucket
BlockingBucket
tokens
is rejected.Bucket.replaceConfiguration(BucketConfiguration, TokensInheritanceStrategy)
Bucket.replaceConfiguration(BucketConfiguration, TokensInheritanceStrategy)
Bucket.replaceConfiguration(BucketConfiguration, TokensInheritanceStrategy)
TimeMeter
which works around System.currentTimeMillis()
TimeMeter
which works around System.nanoTime()
Bucket.replaceConfiguration(BucketConfiguration, TokensInheritanceStrategy)
happens.listener
.Bucket.tryConsume(long)
, follows the same semantic.AsyncScheduledBucket.tryConsume(long, long, ScheduledExecutorService)
Bucket.tryConsume(long)
BlockingBucket.tryConsume(long, long, BlockingStrategy)
BlockingBucket.tryConsume(long, long, BlockingStrategy)
BlockingBucket.tryConsume(long, long, BlockingStrategy)
Bucket.tryConsume(long)
Bucket.tryConsumeAndReturnRemaining(long)
, follows the same semantic.Bucket.tryConsumeAndReturnRemaining(long)
Bucket.tryConsumeAndReturnRemaining(long)
Bucket.tryConsumeAsMuchAsPossible()
, follows the same semantic.Bucket.tryConsumeAsMuchAsPossible(long)
, follows the same semantic.Bucket.tryConsumeAsMuchAsPossible()
Bucket.tryConsumeAsMuchAsPossible(long)
limit
.Bucket.tryConsumeAsMuchAsPossible()
Bucket.tryConsumeAsMuchAsPossible(long)
BlockingBucket.tryConsume(long, long, BlockingStrategy)
but ignores interrupts(just restores interruption flag on exit).BlockingBucket.tryConsumeUninterruptibly(long, long, UninterruptibleBlockingStrategy)
BlockingBucket.tryConsumeUninterruptibly(long, long, UninterruptibleBlockingStrategy)
BlockingBucket.tryConsumeUninterruptibly(long, long, UninterruptibleBlockingStrategy)
Bucket
API.VerboseBucket
and AsyncVerboseBucket
.customTimeMeter
time meter for buckets that will be created by this builder.TimeMeter.SYSTEM_MILLISECONDS
as time meter for buckets that will be created by this builder.TimeMeter.SYSTEM_NANOTIME
as time meter for buckets that will be created by this builder.synchronizationStrategy
for buckets that will be created by this builder.Copyright © 2021. All rights reserved.