MCPcopy Create free account
hub / github.com/astercloud/aster / cleanup

Method cleanup

server/ratelimit/limiter.go:261–279  ·  view source on GitHub ↗

cleanup 清理过期的窗口

()

Source from the content-addressed store, hash-verified

259
260// cleanup 清理过期的窗口
261func (l *SlidingWindowLimiter) cleanup() {
262 ticker := time.NewTicker(l.window)
263 defer ticker.Stop()
264
265 for range ticker.C {
266 l.mu.Lock()
267 now := time.Now()
268 cutoff := now.Add(-l.window * 2)
269
270 for key, w := range l.windows {
271 w.mu.Lock()
272 if len(w.requests) == 0 || (len(w.requests) > 0 && w.requests[len(w.requests)-1].Before(cutoff)) {
273 delete(l.windows, key)
274 }
275 w.mu.Unlock()
276 }
277 l.mu.Unlock()
278 }
279}

Callers 1

NewSlidingWindowLimiterFunction · 0.95

Calls 3

deleteFunction · 0.85
StopMethod · 0.65
AddMethod · 0.65

Tested by

no test coverage detected