为积分通胀策略增加Redis日缓存
1. 新增群积分通胀统计的Redis缓存键与按天过期策略,减少重复聚合查询。 2. 新增带缓存的群插件积分消耗统计方法,Redis异常时自动回退实时查询。 3. 调整积分消耗注解优先读取缓存版统计,降低高频群聊场景下的数据库压力。
This commit is contained in:
@@ -76,7 +76,11 @@ def _resolve_points_cost_profile(plugin_instance: Any, message: Dict[str, Any],
|
||||
try:
|
||||
db_manager = DBConnectionManager.get_instance()
|
||||
points_db = PointsDBOperator(db_manager)
|
||||
stats = points_db.get_group_plugin_consumption_stats(roomid, lookback_hours)
|
||||
# 通胀画像优先走 Redis 日缓存:
|
||||
# 1. 同一个群在一天内会重复触发多次插件扣费;
|
||||
# 2. 若每次都实时聚合,会对积分表和流水表造成额外压力;
|
||||
# 3. 因此这里统一走“按天缓存”的统计入口,把数据库开销压到每天首次访问。
|
||||
stats = points_db.get_group_plugin_consumption_stats_cached(roomid, lookback_hours)
|
||||
|
||||
profile["lookback_hours"] = lookback_hours
|
||||
profile["spend_ratio"] = float(stats.get("plugin_spend_ratio") or 0.0)
|
||||
|
||||
Reference in New Issue
Block a user