enhance: avoid to use transaction Redis commands in rate limiter (#15917)

Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
This commit is contained in:
Yingchun Lai 2025-03-19 10:51:38 +08:00 committed by GitHub
parent 1789437cc5
commit e428628fcc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -40,12 +40,8 @@ class RateLimit:
self.last_recalculate_time = time.time() self.last_recalculate_time = time.time()
# flush max active requests # flush max active requests
if use_local_value or not redis_client.exists(self.max_active_requests_key): if use_local_value or not redis_client.exists(self.max_active_requests_key):
with redis_client.pipeline() as pipe: redis_client.setex(self.max_active_requests_key, timedelta(days=1), self.max_active_requests)
pipe.set(self.max_active_requests_key, self.max_active_requests)
pipe.expire(self.max_active_requests_key, timedelta(days=1))
pipe.execute()
else: else:
with redis_client.pipeline() as pipe:
self.max_active_requests = int(redis_client.get(self.max_active_requests_key).decode("utf-8")) self.max_active_requests = int(redis_client.get(self.max_active_requests_key).decode("utf-8"))
redis_client.expire(self.max_active_requests_key, timedelta(days=1)) redis_client.expire(self.max_active_requests_key, timedelta(days=1))