diff --git a/admin/dashboard/blueprints/contacts.py b/admin/dashboard/blueprints/contacts.py index 88f4ec6..5298853 100644 --- a/admin/dashboard/blueprints/contacts.py +++ b/admin/dashboard/blueprints/contacts.py @@ -16,8 +16,25 @@ def send_message_in_thread(func, *args, **kwargs): loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) - # 运行异步函数 - loop.run_until_complete(func(*args, **kwargs)) + # 创建异步任务 + async def send(): + try: + await func(*args, **kwargs) + finally: + # 发送完成后停止事件循环 + loop.stop() + + # 创建任务 + task = asyncio.create_task(send()) + + # 运行事件循环直到停止 + loop.run_forever() + + # 等待任务完成 + if not task.done(): + task.cancel() + loop.run_until_complete(task) + except Exception as e: logger.error(f"发送消息失败: {e}") finally: