Compare commits
2 Commits
a8bccd7c3f
...
692b300f9b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
692b300f9b | ||
|
|
4ba25d7aa1 |
@@ -1,6 +1,9 @@
|
|||||||
import eventlet
|
import eventlet
|
||||||
|
from eventlet import greenio
|
||||||
import logging
|
import logging
|
||||||
|
import traceback
|
||||||
|
# 获取当前 socketio 实例并配置错误处理
|
||||||
|
import sys
|
||||||
# 配置 eventlet 日志,抑制 IOClosed 等错误日志
|
# 配置 eventlet 日志,抑制 IOClosed 等错误日志
|
||||||
logging.getLogger('eventlet.hubs').setLevel(logging.CRITICAL)
|
logging.getLogger('eventlet.hubs').setLevel(logging.CRITICAL)
|
||||||
logging.getLogger('eventlet.greenio').setLevel(logging.CRITICAL)
|
logging.getLogger('eventlet.greenio').setLevel(logging.CRITICAL)
|
||||||
@@ -10,11 +13,7 @@ eventlet.monkey_patch()
|
|||||||
|
|
||||||
# 配置 eventlet 以更优雅地处理错误,避免疯狂报错
|
# 配置 eventlet 以更优雅地处理错误,避免疯狂报错
|
||||||
try:
|
try:
|
||||||
import eventlet
|
|
||||||
import traceback
|
|
||||||
|
|
||||||
# 1. 首先,禁用 eventlet 的调试日志,减少输出
|
# 1. 首先,禁用 eventlet 的调试日志,减少输出
|
||||||
import logging
|
|
||||||
logging.getLogger('eventlet').setLevel(logging.CRITICAL)
|
logging.getLogger('eventlet').setLevel(logging.CRITICAL)
|
||||||
logging.getLogger('socketio').setLevel(logging.CRITICAL)
|
logging.getLogger('socketio').setLevel(logging.CRITICAL)
|
||||||
logging.getLogger('werkzeug').setLevel(logging.CRITICAL)
|
logging.getLogger('werkzeug').setLevel(logging.CRITICAL)
|
||||||
@@ -41,11 +40,7 @@ try:
|
|||||||
# 4. 只修改关键的 greenio 方法,确保在致命错误时彻底关闭连接
|
# 4. 只修改关键的 greenio 方法,确保在致命错误时彻底关闭连接
|
||||||
# 增强 socketio 错误处理,确保不会因为单个连接错误而宕机
|
# 增强 socketio 错误处理,确保不会因为单个连接错误而宕机
|
||||||
try:
|
try:
|
||||||
from flask_socketio import SocketIO
|
|
||||||
# 获取当前 socketio 实例并配置错误处理
|
|
||||||
import sys
|
|
||||||
original_excepthook = sys.excepthook
|
original_excepthook = sys.excepthook
|
||||||
|
|
||||||
def custom_excepthook(exc_type, exc_value, exc_traceback):
|
def custom_excepthook(exc_type, exc_value, exc_traceback):
|
||||||
"""全局异常钩子,捕获所有未处理的异常"""
|
"""全局异常钩子,捕获所有未处理的异常"""
|
||||||
error_str = str(exc_value)
|
error_str = str(exc_value)
|
||||||
@@ -65,7 +60,6 @@ try:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
# 如果修改失败,忽略错误
|
# 如果修改失败,忽略错误
|
||||||
print(f"[Global Excepthook Patch Error] {e}")
|
print(f"[Global Excepthook Patch Error] {e}")
|
||||||
from eventlet import greenio
|
|
||||||
|
|
||||||
# 保存并替换原始的 greenio 方法
|
# 保存并替换原始的 greenio 方法
|
||||||
if hasattr(greenio.base.GreenSocket, '_recv_loop'):
|
if hasattr(greenio.base.GreenSocket, '_recv_loop'):
|
||||||
|
|||||||
Reference in New Issue
Block a user