change tickRateLimiter to tokenBucketRateLimiter

This commit is contained in:
Hongchao Deng 2015-11-30 13:29:22 -08:00
parent 2edcd3abd5
commit 9781a838da

View File

@ -28,7 +28,7 @@ type RateLimiter interface {
Stop() Stop()
} }
type tickRateLimiter struct { type tokenBucketRateLimiter struct {
limiter *ratelimit.Bucket limiter *ratelimit.Bucket
} }
@ -39,7 +39,7 @@ type tickRateLimiter struct {
// The maximum number of tokens in the bucket is capped at 'burst'. // The maximum number of tokens in the bucket is capped at 'burst'.
func NewTokenBucketRateLimiter(qps float32, burst int) RateLimiter { func NewTokenBucketRateLimiter(qps float32, burst int) RateLimiter {
limiter := ratelimit.NewBucketWithRate(float64(qps), int64(burst)) limiter := ratelimit.NewBucketWithRate(float64(qps), int64(burst))
return &tickRateLimiter{limiter} return &tokenBucketRateLimiter{limiter}
} }
type fakeRateLimiter struct{} type fakeRateLimiter struct{}
@ -48,16 +48,16 @@ func NewFakeRateLimiter() RateLimiter {
return &fakeRateLimiter{} return &fakeRateLimiter{}
} }
func (t *tickRateLimiter) TryAccept() bool { func (t *tokenBucketRateLimiter) TryAccept() bool {
return t.limiter.TakeAvailable(1) == 1 return t.limiter.TakeAvailable(1) == 1
} }
// Accept will block until a token becomes available // Accept will block until a token becomes available
func (t *tickRateLimiter) Accept() { func (t *tokenBucketRateLimiter) Accept() {
t.limiter.Wait(1) t.limiter.Wait(1)
} }
func (t *tickRateLimiter) Stop() { func (t *tokenBucketRateLimiter) Stop() {
} }
func (t *fakeRateLimiter) TryAccept() bool { func (t *fakeRateLimiter) TryAccept() bool {