tune(brain): reduce side-effect dedupe window to 20s

pull/1502/head
xiaoxi68 2026-02-07 04:03:17 +08:00
parent bdd41a0c47
commit f7940b0393
1 changed files with 3 additions and 2 deletions

View File

@ -104,6 +104,7 @@ class BrainChatting:
# side-effect 动作幂等缓存,避免同一触发消息在短时间内重复执行。 # side-effect 动作幂等缓存,避免同一触发消息在短时间内重复执行。
self._recent_side_effect_actions: Dict[str, float] = {} self._recent_side_effect_actions: Dict[str, float] = {}
self._side_effect_dedupe_window_sec = 20.0
async def start(self): async def start(self):
"""检查是否需要启动主循环,如果未激活则启动。""" """检查是否需要启动主循环,如果未激活则启动。"""
@ -186,7 +187,7 @@ class BrainChatting:
return json.dumps(payload, ensure_ascii=False, sort_keys=True, default=str) return json.dumps(payload, ensure_ascii=False, sort_keys=True, default=str)
def _cleanup_recent_side_effect_actions(self, now: float) -> None: def _cleanup_recent_side_effect_actions(self, now: float) -> None:
dedupe_window_sec = 120.0 dedupe_window_sec = self._side_effect_dedupe_window_sec
expired_keys = [ expired_keys = [
key key
for key, ts in self._recent_side_effect_actions.items() for key, ts in self._recent_side_effect_actions.items()
@ -196,7 +197,7 @@ class BrainChatting:
del self._recent_side_effect_actions[key] del self._recent_side_effect_actions[key]
def _is_duplicate_side_effect_action(self, key: str, now: float) -> bool: def _is_duplicate_side_effect_action(self, key: str, now: float) -> bool:
dedupe_window_sec = 120.0 dedupe_window_sec = self._side_effect_dedupe_window_sec
last_ts = self._recent_side_effect_actions.get(key) last_ts = self._recent_side_effect_actions.get(key)
return last_ts is not None and now - last_ts <= dedupe_window_sec return last_ts is not None and now - last_ts <= dedupe_window_sec