Ver código fonte

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

Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
tags/1.1.1
Yingchun Lai 7 meses atrás
pai
commit
e428628fcc
Nenhuma conta vinculada ao e-mail do autor do commit
1 arquivos alterados com 3 adições e 7 exclusões
  1. 3
    7
      api/core/app/features/rate_limiting/rate_limit.py

+ 3
- 7
api/core/app/features/rate_limiting/rate_limit.py Ver arquivo

@@ -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):

Carregando…
Cancelar
Salvar