fix(stats): 添加事件数量限制(默认 10000)

- 添加 MAX_EVENTS 常量(默认 10000)
- record_event() 在事件数超过限制时移除最旧的事件
- 防止数据文件无限增长
This commit is contained in:
2026-03-09 14:50:32 +08:00
parent e136939a25
commit 5034374066
@@ -18,6 +18,12 @@ from collections import defaultdict
STATS_DIR = Path(__file__).parent / "data"
STATS_FILE = STATS_DIR / "stats_data.json"
# 锁文件路径
LOCK_FILE = STATS_DIR / "stats_data.lock"
# 最大事件数量限制
MAX_EVENTS = 10000
# 敏感字段列表(不记录这些字段)
SENSITIVE_FIELDS = {"password", "token", "secret", "key", "credential", "auth"}
@@ -153,6 +159,11 @@ def record_event(
# 加载现有数据
data = _load_stats_data()
data["events"].append(event)
# 事件数量限制:超过 MAX_EVENTS 时移除最旧的事件
if len(data["events"]) > MAX_EVENTS:
data["events"] = data["events"][-MAX_EVENTS:]
data["metadata"]["last_updated"] = datetime.now().isoformat()
# 原子写入