diff --git a/code-server-like/app/__init__.py b/code-server-like/app/__init__.py index 91d797d..af165c4 100644 --- a/code-server-like/app/__init__.py +++ b/code-server-like/app/__init__.py @@ -1,6 +1,9 @@ import eventlet +from eventlet import greenio import logging - +import traceback +# 获取当前 socketio 实例并配置错误处理 +import sys # 配置 eventlet 日志,抑制 IOClosed 等错误日志 logging.getLogger('eventlet.hubs').setLevel(logging.CRITICAL) logging.getLogger('eventlet.greenio').setLevel(logging.CRITICAL) @@ -10,11 +13,7 @@ eventlet.monkey_patch() # 配置 eventlet 以更优雅地处理错误,避免疯狂报错 try: - import eventlet - import traceback - # 1. 首先,禁用 eventlet 的调试日志,减少输出 - import logging logging.getLogger('eventlet').setLevel(logging.CRITICAL) logging.getLogger('socketio').setLevel(logging.CRITICAL) logging.getLogger('werkzeug').setLevel(logging.CRITICAL) @@ -41,11 +40,7 @@ try: # 4. 只修改关键的 greenio 方法,确保在致命错误时彻底关闭连接 # 增强 socketio 错误处理,确保不会因为单个连接错误而宕机 try: - from flask_socketio import SocketIO - # 获取当前 socketio 实例并配置错误处理 - import sys original_excepthook = sys.excepthook - def custom_excepthook(exc_type, exc_value, exc_traceback): """全局异常钩子,捕获所有未处理的异常""" if exc_type.__name__ in ['OSError', 'IOError'] and 'Bad file descriptor' in str(exc_value): @@ -64,7 +59,6 @@ try: except Exception as e: # 如果修改失败,忽略错误 print(f"[Global Excepthook Patch Error] {e}") - from eventlet import greenio # 保存并替换原始的 greenio 方法 if hasattr(greenio.base.GreenSocket, '_recv_loop'):