Add percentage based limiting

This commit is contained in:
Leonid Bugaev
2014-10-26 13:23:17 +03:00
parent de143e4268
commit 58c7e12d1f
2 changed files with 55 additions and 0 deletions
+5
View File
@@ -6,6 +6,7 @@ import (
"strconv"
"strings"
"time"
"math/rand"
)
type Limiter struct {
@@ -39,6 +40,10 @@ func NewLimiter(plugin interface{}, options string) io.ReadWriter {
}
func (l *Limiter) isLimited() bool {
if (l.isPercent) {
return l.limit <= rand.Intn(100)
}
if (time.Now().UnixNano() - l.currentTime) > time.Second.Nanoseconds() {
l.currentTime = time.Now().UnixNano()
l.currentRPS = 0