refactor(event): 优化AFTER_SEND事件的异步触发逻辑并增强日志记录

This commit is contained in:
Windpicker-owo
2025-10-31 14:25:40 +08:00
parent de9d63bf23
commit 373ca48a4d
4 changed files with 117 additions and 58 deletions

View File

@@ -30,14 +30,27 @@ async def send_message(message: MessageSending, show_log=True) -> bool:
from src.plugin_system.base.component_types import EventType
if message.chat_stream:
await event_manager.trigger_event(
EventType.AFTER_SEND,
permission_group="SYSTEM",
stream_id=message.chat_stream.stream_id,
message=message,
)
logger.info(f"[发送完成] 准备触发 AFTER_SEND 事件stream_id={message.chat_stream.stream_id}")
# 使用 asyncio.create_task 来异步触发事件,避免阻塞
async def trigger_event_async():
try:
logger.info(f"[事件触发] 开始异步触发 AFTER_SEND 事件")
await event_manager.trigger_event(
EventType.AFTER_SEND,
permission_group="SYSTEM",
stream_id=message.chat_stream.stream_id,
message=message,
)
logger.info(f"[事件触发] AFTER_SEND 事件触发完成")
except Exception as e:
logger.error(f"[事件触发] 异步触发事件失败: {e}", exc_info=True)
# 创建异步任务,不等待完成
asyncio.create_task(trigger_event_async())
logger.info(f"[发送完成] AFTER_SEND 事件已提交到异步任务")
except Exception as event_error:
logger.error(f"触发 AFTER_SEND 事件时出错: {event_error}")
logger.error(f"触发 AFTER_SEND 事件时出错: {event_error}", exc_info=True)
return True