From cb87ca4921b68c1f7a109f5081e2891579669263 Mon Sep 17 00:00:00 2001 From: liuwei Date: Wed, 19 Mar 2025 14:24:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=9C=8B=E6=9D=BF=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=EF=BC=8C=E9=98=B2=E6=AD=A2=E5=A4=B1=E8=B4=A5=E6=97=B6?= =?UTF-8?q?=E7=9A=84DLL=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/stats_dashboard/dashboard_server.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) 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}")