From e428628fcc8e76be0cd53fcab9baa161d573451e Mon Sep 17 00:00:00 2001 From: Yingchun Lai Date: Wed, 19 Mar 2025 10:51:38 +0800 Subject: [PATCH] enhance: avoid to use transaction Redis commands in rate limiter (#15917) Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com> --- api/core/app/features/rate_limiting/rate_limit.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/api/core/app/features/rate_limiting/rate_limit.py b/api/core/app/features/rate_limiting/rate_limit.py index dcc2b4e55f..da4787ed41 100644 --- a/api/core/app/features/rate_limiting/rate_limit.py +++ b/api/core/app/features/rate_limiting/rate_limit.py @@ -40,14 +40,10 @@ class RateLimit: self.last_recalculate_time = time.time() # flush max active requests if use_local_value or not redis_client.exists(self.max_active_requests_key): - with redis_client.pipeline() as pipe: - pipe.set(self.max_active_requests_key, self.max_active_requests) - pipe.expire(self.max_active_requests_key, timedelta(days=1)) - pipe.execute() + redis_client.setex(self.max_active_requests_key, timedelta(days=1), self.max_active_requests) else: - with redis_client.pipeline() as pipe: - 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)) + 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)) # flush max active requests (in-transit request list) if not redis_client.exists(self.active_requests_key):