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_DIR = Path(__file__).parent / "data"
|
||||||
STATS_FILE = STATS_DIR / "stats_data.json"
|
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"}
|
SENSITIVE_FIELDS = {"password", "token", "secret", "key", "credential", "auth"}
|
||||||
|
|
||||||
@@ -153,6 +159,11 @@ def record_event(
|
|||||||
# 加载现有数据
|
# 加载现有数据
|
||||||
data = _load_stats_data()
|
data = _load_stats_data()
|
||||||
data["events"].append(event)
|
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()
|
data["metadata"]["last_updated"] = datetime.now().isoformat()
|
||||||
|
|
||||||
# 原子写入
|
# 原子写入
|
||||||
|
|||||||
Reference in New Issue
Block a user