修复三个问题:时间戳过滤放宽、系统进程名过滤、EasyOCR CUDA崩溃修复

1. 放宽时间戳过滤:窗口30s→60s,消息长度4字→20字,包含中文即放行
2. 添加系统进程名过滤:200+个Windows/第三方进程名模式,防止混入OCR文本
3. EasyOCR崩溃修复:检测内存不足时设置CUDA_VISIBLE_DEVICES=''禁用CUDA,避免import torch加载CUDA库导致崩溃
This commit is contained in:
youpaishidifu
2026-08-05 21:57:53 +08:00
parent f50eeb28da
commit 4418a46460
2 changed files with 66 additions and 16 deletions
+5 -1
View File
@@ -119,6 +119,7 @@ try:
)
_write_crash_log(f"{datetime.now()} [easyocr_worker] 系统内存压力预检失败: {_msg}")
os.environ["EASYOCR_FORCE_CPU"] = "1"
os.environ["CUDA_VISIBLE_DEVICES"] = "" # 禁用CUDA,防止加载CUDA库导致崩溃
sys.stderr.write(f"[easyocr_worker] ⚠️ {_msg},降级CPU模式\n")
sys.stderr.flush()
elif _avail_phys_gb < 3.0:
@@ -129,6 +130,7 @@ try:
)
_write_crash_log(f"{datetime.now()} [easyocr_worker] 物理内存预检失败: {_msg}")
os.environ["EASYOCR_FORCE_CPU"] = "1"
os.environ["CUDA_VISIBLE_DEVICES"] = "" # 禁用CUDA,防止加载CUDA库导致崩溃
sys.stderr.write(f"[easyocr_worker] ⚠️ {_msg},降级CPU模式\n")
sys.stderr.flush()
except Exception:
@@ -169,7 +171,7 @@ def _init_reader():
"""初始化 EasyOCR reader(GPU 优先,父进程可强制 CPU)。"""
# 先检查环境变量是否强制CPU
_force_cpu = os.environ.get("EASYOCR_FORCE_CPU") == "1"
# 再次检查物理内存:加载torch+CUDA需要大量内存,内存不足时强制CPU
if not _force_cpu:
try:
@@ -178,6 +180,7 @@ def _init_reader():
_avail_phys_gb = _mem.available / (1024**3)
if _avail_phys_gb < 3.0:
_force_cpu = True
os.environ["CUDA_VISIBLE_DEVICES"] = "" # 禁用CUDA,防止加载CUDA库导致崩溃
sys.stderr.write(
f"[easyocr_worker] ⚠️ 物理内存不足(剩余{_avail_phys_gb:.1f}GB),"
f"强制CPU模式(避免CUDA加载导致冻结)\n"
@@ -202,6 +205,7 @@ def _init_reader():
sys.stderr.write(f"[easyocr_worker] CUDA 健康检查失败({cuda_err}),降级 CPU\n")
sys.stderr.flush()
use_gpu = False
os.environ["CUDA_VISIBLE_DEVICES"] = "" # 禁用CUDA,防止后续崩溃
except Exception:
use_gpu = False