refactor(sleep): 重构睡眠管理系统,移除桥接模式
将 `SleepManager` 从 `schedule_bridge` 中独立出来,使其成为一个自包含的组件。现在由 `HeartFChatting` 和 `ScheduleManager` 直接实例化和使用 `SleepManager`,移除了原有的全局单例桥接器。 主要变更: - 删除了 `schedule_bridge.py`,其功能被直接整合到 `SleepManager` 和调用方中。 - `SleepManager` 内部逻辑被拆分为更小的模块,如 `TimeChecker`、`NotificationSender` 和 `SleepStateSerializer`,以提高内聚性和可测试性。 - `HeartFChatting` 现在直接创建并管理 `SleepManager` 实例,并通过 `HfcContext` 传递给其他需要的组件(如 `WakeUpManager`)。 - `ScheduleManager` 也创建自己的 `SleepManager` 实例来更新日程,简化了依赖关系。 - 简化了 `WakeUpManager` 中获取睡眠状态和重置状态的逻辑,直接通过上下文访问 `SleepManager`。
This commit is contained in:
committed by
Windpicker-owo
parent
2e6fc99224
commit
a2bebd0f34
@@ -7,7 +7,7 @@ from src.common.database.sqlalchemy_models import Schedule, get_db_session
|
||||
from src.config.config import global_config
|
||||
from src.common.logger import get_logger
|
||||
from src.manager.async_task_manager import AsyncTask, async_task_manager
|
||||
from ..chat.chat_loop.sleep_manager.schedule_bridge import schedule_sleep_bridge
|
||||
from ..chat.chat_loop.sleep_manager.sleep_manager import SleepManager
|
||||
from .database import update_plan_usage
|
||||
from .llm_generator import ScheduleLLMGenerator
|
||||
from .plan_manager import PlanManager
|
||||
@@ -23,6 +23,7 @@ class ScheduleManager:
|
||||
self.plan_manager = PlanManager()
|
||||
self.daily_task_started = False
|
||||
self.schedule_generation_running = False
|
||||
self.sleep_manager = SleepManager()
|
||||
|
||||
async def start_daily_schedule_generation(self):
|
||||
if not self.daily_task_started:
|
||||
@@ -44,7 +45,7 @@ class ScheduleManager:
|
||||
schedule_data = self._load_schedule_from_db(today_str)
|
||||
if schedule_data:
|
||||
self.today_schedule = schedule_data
|
||||
schedule_sleep_bridge.update_today_schedule(self.today_schedule)
|
||||
self.sleep_manager.update_today_schedule(self.today_schedule)
|
||||
self._log_loaded_schedule(today_str)
|
||||
return
|
||||
|
||||
@@ -99,7 +100,7 @@ class ScheduleManager:
|
||||
if schedule_data:
|
||||
self._save_schedule_to_db(today_str, schedule_data)
|
||||
self.today_schedule = schedule_data
|
||||
schedule_sleep_bridge.update_today_schedule(self.today_schedule)
|
||||
self.sleep_manager.update_today_schedule(self.today_schedule)
|
||||
self._log_generated_schedule(today_str, schedule_data)
|
||||
|
||||
if sampled_plans:
|
||||
|
||||
Reference in New Issue
Block a user