diff --git a/admin/dashboard/blueprints/contacts.py b/admin/dashboard/blueprints/contacts.py index 5298853..ee83499 100644 --- a/admin/dashboard/blueprints/contacts.py +++ b/admin/dashboard/blueprints/contacts.py @@ -20,23 +20,17 @@ def send_message_in_thread(func, *args, **kwargs): async def send(): try: await func(*args, **kwargs) + except Exception as e: + logger.error(f"发送消息失败: {e}") finally: # 发送完成后停止事件循环 loop.stop() - # 创建任务 - task = asyncio.create_task(send()) - - # 运行事件循环直到停止 - loop.run_forever() - - # 等待任务完成 - if not task.done(): - task.cancel() - loop.run_until_complete(task) + # 创建并运行任务,不等待结果 + asyncio.run_coroutine_threadsafe(send(), loop) except Exception as e: - logger.error(f"发送消息失败: {e}") + logger.error(f"线程执行失败: {e}") finally: # 确保清理资源 if loop is not None: