From a31369abbe4f47f7630e2f11071edba9ec9e6376 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Mon, 21 Aug 2023 16:40:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20counter=20=E5=8C=85=E4=BF=AE=E5=A4=8D=20?= =?UTF-8?q?mark=20key=20=E6=97=A0=E6=B3=95=E8=A2=AB=E6=B8=85=E7=90=86?= =?UTF-8?q?=E3=80=81=E9=87=8D=E7=BD=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/counter/counter.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/utils/counter/counter.go b/utils/counter/counter.go index ba5d80c..5ef7f05 100644 --- a/utils/counter/counter.go +++ b/utils/counter/counter.go @@ -124,6 +124,15 @@ func (slf *Counter[K, V]) Reset(key K) { slf.lock.Unlock() } +// ResetMark 重置特定 mark 的 key 的计数 +func (slf *Counter[K, V]) ResetMark(mark, key K) { + slf.lock.Lock() + mk := fmt.Sprintf("%v_%v", mark, key) + delete(slf.c, key) + delete(slf.drm, mk) + slf.lock.Unlock() +} + // ResetExpired 重置特定 key 的过期时间 func (slf *Counter[K, V]) ResetExpired(key K) { slf.lock.Lock() @@ -131,11 +140,20 @@ func (slf *Counter[K, V]) ResetExpired(key K) { slf.lock.Unlock() } +// ResetExpiredMark 重置特定 mark 的 key 的过期时间 +func (slf *Counter[K, V]) ResetExpiredMark(mark, key K) { + slf.lock.Lock() + mk := fmt.Sprintf("%v_%v", mark, key) + delete(slf.drm, mk) + slf.lock.Unlock() +} + // ResetAll 重置所有计数 func (slf *Counter[K, V]) ResetAll() { slf.lock.Lock() clear(slf.c) clear(slf.dr) + clear(slf.drm) slf.lock.Unlock() }