diff --git a/plugins/stats_dashboard/dashboard_server.py b/plugins/stats_dashboard/dashboard_server.py index 6089c88..8b768bd 100644 --- a/plugins/stats_dashboard/dashboard_server.py +++ b/plugins/stats_dashboard/dashboard_server.py @@ -130,11 +130,27 @@ class DashboardServer: def stop(self) -> None: """停止服务器""" try: + self.logger.info("正在停止统计看板服务器...") self._stop_event.set() - # 修改:使用更可靠的方式停止服务器 + + # 关闭服务器 if self._server: self._server.shutdown() - self.logger.info("统计看板服务器已停止") + self._server = None + + # 等待所有线程完成 + time.sleep(0.5) # 给线程一些时间来完成 + + self.logger.info("统计看板服务器已完全停止") except Exception as e: self.logger.error(f"停止统计看板服务器出错: {e}") raise + + def __del__(self): + """析构函数,确保资源被释放""" + try: + if hasattr(self, '_server') and self._server: + self.stop() + except Exception as e: + if hasattr(self, 'logger'): + self.logger.error(f"DashboardServer 析构时出错: {e}")