fix: 飞书长连接消息处理改为后台线程,防止漏接收
- _handle_message 立即派发到 threading.Thread 处理,不阻塞 SDK 事件循环 - 解决 LLM 响应慢时后续消息排队/丢失的问题 - 精简日志输出,去掉冗余分隔线
This commit is contained in:
Binary file not shown.
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user