- use millisecond for limit access speed
This commit is contained in:
@@ -8,8 +8,8 @@ import (
|
||||
)
|
||||
|
||||
type LimiterConfig struct {
|
||||
MaxAccessCount int
|
||||
TimeGapInSecond int
|
||||
MaxAccessCount int
|
||||
TimeGapMilliSecond int
|
||||
}
|
||||
|
||||
type Limiter struct {
|
||||
@@ -23,7 +23,7 @@ func New(config map[string]*LimiterConfig, defaultConfig ...*LimiterConfig) *Lim
|
||||
limitConfig: make(map[string]*ratelimit.Bucket),
|
||||
}
|
||||
for k, v := range config {
|
||||
limiter.limitConfig[k] = ratelimit.NewBucketWithQuantum(time.Duration(v.TimeGapInSecond)*time.Second, int64(v.MaxAccessCount), int64(v.MaxAccessCount))
|
||||
limiter.limitConfig[k] = ratelimit.NewBucketWithQuantum(time.Duration(v.TimeGapMilliSecond)*time.Millisecond, int64(v.MaxAccessCount), int64(v.MaxAccessCount))
|
||||
}
|
||||
if len(defaultConfig) > 0 {
|
||||
limiter.defaultConfig = defaultConfig[0]
|
||||
@@ -40,7 +40,7 @@ func (l *Limiter) AccessAPI(apiName string) {
|
||||
l.Lock()
|
||||
if bucket = l.limitConfig[apiName]; bucket == nil {
|
||||
v := l.defaultConfig
|
||||
bucket = ratelimit.NewBucketWithQuantum(time.Duration(v.TimeGapInSecond)*time.Second, int64(v.MaxAccessCount), int64(v.MaxAccessCount))
|
||||
bucket = ratelimit.NewBucketWithQuantum(time.Duration(v.TimeGapMilliSecond)*time.Millisecond, int64(v.MaxAccessCount), int64(v.MaxAccessCount))
|
||||
l.limitConfig[apiName] = bucket
|
||||
}
|
||||
l.Unlock()
|
||||
|
||||
Reference in New Issue
Block a user