From eb127ed8973bafee84293c95bedcd4088aa586f0 Mon Sep 17 00:00:00 2001 From: Jeason <1710884619@qq.com> Date: Thu, 2 Apr 2026 15:52:30 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=A3=9E=E4=B9=A6=E9=95=BF=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E6=B6=88=E6=81=AF=E5=A4=84=E7=90=86=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E7=BA=BF=E7=A8=8B=EF=BC=8C=E9=98=B2=E6=AD=A2?= =?UTF-8?q?=E6=BC=8F=E6=8E=A5=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - _handle_message 立即派发到 threading.Thread 处理,不阻塞 SDK 事件循环 - 解决 LLM 响应慢时后续消息排队/丢失的问题 - 精简日志输出,去掉冗余分隔线 --- data/tsp_assistant.db | Bin 217088 -> 217088 bytes src/integrations/feishu_longconn_service.py | 15 ++++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/data/tsp_assistant.db b/data/tsp_assistant.db index dcafc3c0085d8fd1747f7da6262ed3619bca7cd1..8e10e57166bd161deb5b04802ba28ad14ffdff6e 100644 GIT binary patch delta 392 zcmZozz}v8ZcY-uy%0wAw#*~c-OV;zSuw7-~J;5EtX~lMRv%rR&3ct&-y1k**E*y>@6?WFMGbb?fI;hm($n1Tr^|y z!aaH%^X5F;*7>x*Yx2cCc`~MkRt5%ohUSKrCdT%cjlsZSWx=n9?(0M*NAJz!kYxtC zOtLj|^2NP22$!j`?0&JVaq`>U27XVMH9Z3w*|g#rHb*|$zwlY(dh%VEFKuaMXsKsp yX=Gt$4tL-xy{C_Zzn=#=aC7u-*APaQ=?nQ8eRz<4)Bcm65r~<#|Kw+8cK`sIn9NB4 delta 78 zcmZozz}v8ZcY-uy!bBNo#)ORtOV;x+aYr%mp5Tt+|IPnxv%rRDHV{B#F9JSjm igpq0bLViY{$@Y6WSS&0}EZcwbGXgQw_MiOB><$1<0vmn+ diff --git a/src/integrations/feishu_longconn_service.py b/src/integrations/feishu_longconn_service.py index d05eeea..f3bb8e0 100644 --- a/src/integrations/feishu_longconn_service.py +++ b/src/integrations/feishu_longconn_service.py @@ -5,6 +5,7 @@ """ import logging import json +import threading from typing import Optional import lark_oapi as lark @@ -49,15 +50,21 @@ class FeishuLongConnService: logger.info("✅ 飞书长连接服务初始化完成") def _handle_message(self, data: P2ImMessageReceiveV1) -> None: + """收到消息事件,立即派发到后台线程处理,避免阻塞 SDK 事件循环""" + threading.Thread( + target=self._process_message, + args=(data,), + daemon=True + ).start() + + def _process_message(self, data: P2ImMessageReceiveV1) -> None: """ - 处理接收到的消息事件 + 在后台线程中处理消息 Args: data: 飞书消息事件数据 """ - logger.info("=" * 80) logger.info("📨 收到飞书消息事件!") - logger.info("=" * 80) try: # 提取消息信息 @@ -205,9 +212,7 @@ class FeishuLongConnService: # 发送回复 self._reply_message(message_id, reply_text) - logger.info("=" * 80) logger.info("✅ 消息处理完成") - logger.info("=" * 80) except Exception as e: logger.error(f"❌ 处理消息时发生错误: {e}", exc_info=True)