fix(stats): 添加事件数量限制(默认 10000)
- 添加 MAX_EVENTS 常量(默认 10000) - record_event() 在事件数超过限制时移除最旧的事件 - 防止数据文件无限增长
This commit is contained in:
@@ -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()
|
||||
|
||||
# 原子写入
|
||||
|
||||
Reference in New Issue
Block a user