Pārlūkot izejas kodu

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

Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
Yingchun Lai 1 mēnesi atpakaļ
vecāks
revīzija
e428628fcc
1 mainītis faili ar 3 papildinājumiem un 7 dzēšanām
  1. 3 7
      api/core/app/features/rate_limiting/rate_limit.py

+ 3 - 7
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):