mirror of https://github.com/Mai-with-u/MaiBot.git
tune(brain): reduce side-effect dedupe window to 20s
parent
bdd41a0c47
commit
f7940b0393
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue