实现了新的睡眠系统喵~
This commit is contained in:
@@ -17,10 +17,11 @@ from src.common.data_models.message_manager_data_model import MessageManagerStat
|
||||
from src.common.logger import get_logger
|
||||
from src.config.config import global_config
|
||||
from src.plugin_system.apis.chat_api import get_chat_manager
|
||||
from src.plugins.built_in.sleep_system.api import on_message_received
|
||||
|
||||
from .distribution_manager import stream_loop_manager
|
||||
from .sleep_manager.sleep_manager import SleepManager
|
||||
from .sleep_manager.wakeup_manager import WakeUpManager
|
||||
# from .sleep_manager.sleep_manager import SleepManager
|
||||
# from .sleep_manager.wakeup_manager import WakeUpManager
|
||||
|
||||
if TYPE_CHECKING:
|
||||
pass
|
||||
@@ -43,9 +44,9 @@ class MessageManager:
|
||||
self.action_manager = ChatterActionManager()
|
||||
self.chatter_manager = ChatterManager(self.action_manager)
|
||||
|
||||
# 初始化睡眠和唤醒管理器
|
||||
self.sleep_manager = SleepManager()
|
||||
self.wakeup_manager = WakeUpManager(self.sleep_manager)
|
||||
# 初始化睡眠和唤醒管理器 (已被新插件取代)
|
||||
# self.sleep_manager = SleepManager()
|
||||
# self.wakeup_manager = WakeUpManager(self.sleep_manager)
|
||||
|
||||
# 消息缓存系统 - 直接集成到消息管理器
|
||||
self.message_caches: Dict[str, deque] = defaultdict(deque) # 每个流的消息缓存
|
||||
@@ -93,8 +94,8 @@ class MessageManager:
|
||||
except Exception as e:
|
||||
logger.error(f"启动自适应流管理器失败: {e}")
|
||||
|
||||
# 启动睡眠和唤醒管理器
|
||||
await self.wakeup_manager.start()
|
||||
# 启动睡眠和唤醒管理器 (已被新插件取代)
|
||||
# await self.wakeup_manager.start()
|
||||
|
||||
# 启动流循环管理器并设置chatter_manager
|
||||
await stream_loop_manager.start()
|
||||
@@ -141,8 +142,8 @@ class MessageManager:
|
||||
except Exception as e:
|
||||
logger.error(f"停止自适应流管理器失败: {e}")
|
||||
|
||||
# 停止睡眠和唤醒管理器
|
||||
await self.wakeup_manager.stop()
|
||||
# 停止睡眠和唤醒管理器 (已被新插件取代)
|
||||
# await self.wakeup_manager.stop()
|
||||
|
||||
# 停止流循环管理器
|
||||
await stream_loop_manager.stop()
|
||||
@@ -152,6 +153,9 @@ class MessageManager:
|
||||
async def add_message(self, stream_id: str, message: DatabaseMessages):
|
||||
"""添加消息到指定聊天流"""
|
||||
try:
|
||||
# 触发睡眠系统外部事件
|
||||
on_message_received()
|
||||
|
||||
chat_manager = get_chat_manager()
|
||||
chat_stream = await chat_manager.get_stream(stream_id)
|
||||
if not chat_stream:
|
||||
@@ -335,9 +339,14 @@ class MessageManager:
|
||||
inactive_streams.append(stream_id)
|
||||
for stream_id in inactive_streams:
|
||||
try:
|
||||
await chat_stream.context_manager.clear_context()
|
||||
del chat_manager.streams[stream_id]
|
||||
logger.info(f"清理不活跃聊天流: {stream_id}")
|
||||
# 修复: 直接通过 stream_id 获取 chat_stream,避免潜在的未绑定问题
|
||||
inactive_stream = chat_manager.streams.get(stream_id)
|
||||
if inactive_stream:
|
||||
await inactive_stream.context_manager.clear_context()
|
||||
del chat_manager.streams[stream_id]
|
||||
logger.info(f"清理不活跃聊天流: {stream_id}")
|
||||
else:
|
||||
logger.warning(f"尝试清理一个不存在的流: {stream_id}")
|
||||
except Exception as e:
|
||||
logger.error(f"清理聊天流 {stream_id} 失败: {e}")
|
||||
if inactive_streams:
|
||||
|
||||
Reference in New Issue
Block a user