From 0b0193418029cc660b74da18a73d92b81eb42bcf Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Fri, 8 May 2026 23:59:03 -0600 Subject: [PATCH] fix --- utils/cache.py | 9 --------- utils/throttling.py | 12 ++++++++++-- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/utils/cache.py b/utils/cache.py index fa39bdb..3d5e74f 100644 --- a/utils/cache.py +++ b/utils/cache.py @@ -11,15 +11,6 @@ class MyRedisClient(DefaultClient): client = self.get_client(write=True) return getattr(client, item) - def hget(self, name, key, version=None, client=None): - if client is None: - client = self.get_client(write=True) - nkey = self.make_key(key, version=version) - value = client.hget(name, nkey) - if value is None: - return None - return self.decode(value) - def redis_incr(self, key, count=1): """ django 默认的 incr 在 key 不存在时候会抛异常 diff --git a/utils/throttling.py b/utils/throttling.py index bab1184..9857790 100644 --- a/utils/throttling.py +++ b/utils/throttling.py @@ -32,8 +32,10 @@ class TokenBucket: last_capacity = self._redis_conn.hget(self._key, self._last_capacity_key) if last_capacity is None: return self._init_key()[0] - else: + try: return float(last_capacity) + except ValueError: + return self._init_key()[0] @_last_capacity.setter def _last_capacity(self, value): @@ -41,7 +43,13 @@ class TokenBucket: @property def _last_timestamp(self): - return float(self._redis_conn.hget(self._key, self._last_timestamp_key)) + last_timestamp = self._redis_conn.hget(self._key, self._last_timestamp_key) + if last_timestamp is None: + return self._init_key()[1] + try: + return float(last_timestamp) + except ValueError: + return self._init_key()[1] @_last_timestamp.setter def _last_timestamp(self, value):