瀏覽代碼

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 月之前
父節點
當前提交
e428628fcc
沒有連結到貢獻者的電子郵件帳戶。
共有 1 個檔案被更改,包括 3 行新增7 行删除
  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):

Loading…
取消
儲存