Files
baseapi/platformapi/limit_access_speed_test.go
gazebo e132209cc5 - up
2019-02-22 14:08:52 +08:00

50 lines
1.0 KiB
Go

package platformapi
import (
"fmt"
"testing"
"time"
)
func TestLimitSpeed(t *testing.T) {
limiter := New(map[string]*LimiterConfig{
"limited1persecond": &LimiterConfig{
MaxAccessCount: 1,
TimeGapMilliSecond: 1000,
},
"limited10per10second": &LimiterConfig{
MaxAccessCount: 10,
TimeGapMilliSecond: 10 * 1000,
},
}, &LimiterConfig{
MaxAccessCount: 1,
TimeGapMilliSecond: 2000,
})
go func() {
count := 0
for {
limiter.AccessAPI("limited1persecond")
fmt.Printf("limited1persecond, time:%s, count:%d\n", time.Now().Format("2006-01-02 15:04:05.00000"), count)
count++
}
}()
go func() {
count := 0
for {
limiter.AccessAPI("limited10per10second")
fmt.Printf("limited10per10second, time:%s, count:%d\n", time.Now().Format("2006-01-02 15:04:05.00000"), count)
count++
}
}()
go func() {
count := 0
for {
limiter.AccessAPI("otherAPI")
fmt.Printf("otherAPI, time:%s, count:%d\n", time.Now().Format("2006-01-02 15:04:05.00000"), count)
count++
}
}()
time.Sleep(30 * time.Second)
}