24
// NewRateLimiter returns a new rate limiter that can handle dynamic
25
// configuration updates
27
>
limiter := rate.NewLimiter(rate.Limit(newRPS), newBurst)
28
>
ts := clock.NewRealTimeSource()
29
>
rl := &RateLimiterImpl{
30
>
rps: newRPS,
31
>
burst: newBurst,
32
>
timeSource: ts,
33
>
ClockedRateLimiter: NewClockedRateLimiter(limiter, ts),
34
>
}
35
>
36
>
return rl
37
>
}
38
39
// SetRPS sets the rate of the rate limiter
41
>
rl.refreshInternalRateLimiterImpl(&rps, nil)
42
>
}
43
44
// SetBurst sets the burst of the rate limiter