From a7bd6a05b3eced49b98b40ee513aefacbaa2892a Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Fri, 8 Aug 2025 00:05:52 +0800 Subject: [PATCH] Update heartFC_chat.py --- src/chat/chat_loop/heartFC_chat.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/chat/chat_loop/heartFC_chat.py b/src/chat/chat_loop/heartFC_chat.py index 803b9c129..0c80ef83a 100644 --- a/src/chat/chat_loop/heartFC_chat.py +++ b/src/chat/chat_loop/heartFC_chat.py @@ -607,23 +607,19 @@ class HeartFChatting: """主循环,持续进行计划并可能回复消息,直到被外部取消。""" try: while self.running: - try: - # 主循环 - success = await self._loopbody() - await asyncio.sleep(0.1) - if not success: - break - except Exception: - logger.error(f"{self.log_prefix} 麦麦聊天循环意外错误") - print(traceback.format_exc()) - # 理论上不能到这里 + # 主循环 + success = await self._loopbody() + await asyncio.sleep(0.1) + if not success: + break except asyncio.CancelledError: # 设置了关闭标志位后被取消是正常流程 logger.info(f"{self.log_prefix} 麦麦已关闭聊天") except Exception: - logger.error(f"{self.log_prefix} 麦麦聊天意外错误") + logger.error(f"{self.log_prefix} 麦麦聊天意外错误,尝试重新启动") print(traceback.format_exc()) - logger.error(f"{self.log_prefix} 结束了聊天循环") + self._loop_task = asyncio.create_task(self._main_chat_loop()) + logger.error(f"{self.log_prefix} 结束了当前聊天循环") async def _handle_action( self,