全局异常捕获,特别是IOClosed错误,避免服务器崩溃

This commit is contained in:
CakeCN
2026-01-07 01:06:13 +08:00
parent a3b3018de7
commit 8aa567cdf2
2 changed files with 47 additions and 8 deletions

View File

@@ -10,11 +10,23 @@ logging.getLogger('werkzeug').setLevel(logging.ERROR)
app = create_app()
if __name__ == '__main__':
socketio.run(
app,
host="0.0.0.0",
port=5200,
debug=False, # 开发期打开
allow_unsafe_werkzeug=True, # 避免 dev server 的安全限制提示
log_output=False # 禁用详细输出
try:
socketio.run(
app,
host="0.0.0.0",
port=5200,
debug=False, # 开发期打开
allow_unsafe_werkzeug=True, # 避免 dev server 的安全限制提示
log_output=False # 禁用详细输出
)
except KeyboardInterrupt:
print("Server stopped by user")
except Exception as e:
# 捕获所有异常,包括 eventlet 内部的 IOClosed 错误
if "IOClosed" in str(type(e).__name__) or "Operation on closed file" in str(e):
# 优雅处理 eventlet 关闭文件的错误
print("Eventlet IOClosed error handled gracefully")
else:
# 其他异常仍然打印
import traceback
traceback.print_exc()