feat:重构UI

This commit is contained in:
2025-12-26 16:03:12 +08:00
parent 1429e0e66a
commit abcbe3cddc
67 changed files with 12170 additions and 515 deletions

View File

@@ -1,3 +1,4 @@
import asyncio
import time
import redis.asyncio as redis
from ..core import get_settings
@@ -10,7 +11,11 @@ class RateLimitService:
self.redis: redis.Redis | None = None
async def connect(self):
self.redis = redis.from_url(settings.redis_url)
try:
self.redis = redis.from_url(settings.redis_url)
await self.redis.ping()
except Exception:
self.redis = None
async def disconnect(self):
if self.redis:
@@ -23,9 +28,14 @@ class RateLimitService:
now = int(time.time())
window_key = f"rl:{key}:{now // 60}"
count = await self.redis.incr(window_key)
if count == 1:
await self.redis.expire(window_key, 60)
try:
count = await self.redis.incr(window_key)
if count == 1:
await self.redis.expire(window_key, 60)
except asyncio.CancelledError:
return True
except Exception:
return True
return count <= limit