Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class TokenBucketRecord extends AbstractTokenRecord {
- protected Instant lastTokenDistributedTs;
- ...
- @Override
- public RateLimitRecord updateWith(RefillPolicy policy, Instant requestTs) {
- Duration timeElapsed = Duration.between(lastTokenDistributedTs, requestTs);
- int numNewTokens = policy.distributeNewTokens(timeElapsed);
- if (numNewTokens > 0) {
- long newTokenCount = this.tokenCount + numNewTokens;
- long capacity = policy.getCapacity();
- if (newTokenCount > capacity) {
- newTokenCount = capacity;
- }
- return TokenBucketRecord.of(newTokenCount, requestTs);
- }
- return this;
- }
- ...
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement