This commit is contained in:
gazebo
2019-02-22 14:08:52 +08:00
parent fb77048058
commit e132209cc5
2 changed files with 7 additions and 8 deletions

View File

@@ -39,9 +39,10 @@ func (l *Limiter) AccessAPI(apiName string) {
if bucket == nil && l.defaultConfig != nil {
l.Lock()
if bucket = l.limitConfig[apiName]; bucket == nil {
v := l.defaultConfig
bucket = ratelimit.NewBucketWithQuantum(time.Duration(v.TimeGapMilliSecond)*time.Millisecond, int64(v.MaxAccessCount), int64(v.MaxAccessCount))
l.limitConfig[apiName] = bucket
if v := l.defaultConfig; v != nil {
bucket = ratelimit.NewBucketWithQuantum(time.Duration(v.TimeGapMilliSecond)*time.Millisecond, int64(v.MaxAccessCount), int64(v.MaxAccessCount))
l.limitConfig[apiName] = bucket
}
}
l.Unlock()
}

View File

@@ -4,8 +4,6 @@ import (
"fmt"
"testing"
"time"
"git.rosy.net.cn/baseapi/utils"
)
func TestLimitSpeed(t *testing.T) {
@@ -27,7 +25,7 @@ func TestLimitSpeed(t *testing.T) {
count := 0
for {
limiter.AccessAPI("limited1persecond")
fmt.Printf("limited1persecond, time:%s, count:%d\n", utils.GetCurTimeStr(), count)
fmt.Printf("limited1persecond, time:%s, count:%d\n", time.Now().Format("2006-01-02 15:04:05.00000"), count)
count++
}
}()
@@ -35,7 +33,7 @@ func TestLimitSpeed(t *testing.T) {
count := 0
for {
limiter.AccessAPI("limited10per10second")
fmt.Printf("limited10per10second, time:%s, count:%d\n", utils.GetCurTimeStr(), count)
fmt.Printf("limited10per10second, time:%s, count:%d\n", time.Now().Format("2006-01-02 15:04:05.00000"), count)
count++
}
}()
@@ -43,7 +41,7 @@ func TestLimitSpeed(t *testing.T) {
count := 0
for {
limiter.AccessAPI("otherAPI")
fmt.Printf("otherAPI, time:%s, count:%d\n", utils.GetCurTimeStr(), count)
fmt.Printf("otherAPI, time:%s, count:%d\n", time.Now().Format("2006-01-02 15:04:05.00000"), count)
count++
}
}()