浏览代码

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

正在加载...
取消
保存