(ruleName, addr string)
| 43 | } |
| 44 | |
| 45 | func storeBoostWinner(ruleName, addr string) { |
| 46 | // 简单的 size 控制:超过上限时随机淘汰一个(遍历首个)。 |
| 47 | count := 0 |
| 48 | boostWinnerCache.Range(func(k, v any) bool { |
| 49 | count++ |
| 50 | if count > boostWinnerCacheMax { |
| 51 | // 淘汰当前这个并停止 |
| 52 | boostWinnerCache.Delete(k) |
| 53 | return false |
| 54 | } |
| 55 | return true |
| 56 | }) |
| 57 | boostWinnerCache.Store(ruleName, boostWinnerEntry{addr: addr, expires: time.Now().Add(boostWinnerTTL)}) |
| 58 | } |
| 59 | |
| 60 | // 不再单独提供显式 drop 接口,超时或拨号失败自动失效。 |
| 61 |
no outgoing calls
no test coverage detected