refactor(sleep_system): 重构睡眠系统为单例模式并优化启动逻辑
将睡眠系统的核心组件 `SleepStateManager` 从全局变量实例化改为通过 `get_sleep_state_manager()` 函数获取的单例模式。这一改变解决了模块间的循环导入问题,并提升了代码的组织性和可维护性。 主要变更: - 引入 `get_sleep_state_manager` 函数以惰性加载方式创建和返回 `SleepStateManager` 单例。 - 将 `sleep_logic.py` 中重复的作息时间计算逻辑提取到新的 `utils.py` 模块中,以实现代码复用。 - 在 `SleepStateManager` 初始化时增加 `_refresh_sleep_state` 方法,用于在程序启动时校准睡眠状态,确保状态与当前时间一致,防止因程序重启导致的状态错乱。 - 更新所有调用点,使用新的 `get_sleep_state_manager()` 函数来访问状态管理器。
This commit is contained in:
committed by
Windpicker-owo
parent
6b3c4d50c6
commit
e7f431392a
@@ -512,10 +512,8 @@ MoFox_Bot(第三方修改版)
|
||||
logger.error(f"月度计划管理器初始化失败: {e}")
|
||||
|
||||
# 初始化日程管理器
|
||||
if global_config.planning_system.schedule_enable:
|
||||
try:
|
||||
await schedule_manager.load_or_generate_today_schedule()
|
||||
await schedule_manager.start_daily_schedule_generation()
|
||||
await schedule_manager.initialize()
|
||||
logger.info("日程表管理器初始化成功")
|
||||
except Exception as e:
|
||||
logger.error(f"日程表管理器初始化失败: {e}")
|
||||
|
||||
Reference in New Issue
Block a user