fix(chat): 优化线程环境下的同步数据库调用逻辑
重构了 `_sync_db_get` 函数,以解决在复杂线程和事件循环场景下可能出现的死锁和不稳定性问题。 旧的实现逻辑过于复杂,试图处理多种事件循环状态,容易出错。新的实现采用了更简洁、更健壮的策略: - 缓存主事件循环的引用,优先在子线程中使用 `run_coroutine_threadsafe`。 - 当无法使用主循环或在主线程中时,回退到使用 `asyncio.run()` 创建新循环来执行异步任务,这是一种更安全的模式。 - 增加了保护措施,避免在已运行的主事件循环中调用时造成阻塞。 此外,此提交还修复了日志记录器中可能添加空前缀导致格式异常的小问题。
This commit is contained in:
@@ -786,7 +786,8 @@ class ModuleColoredConsoleRenderer:
|
||||
# 重新组合
|
||||
# parts.append(prefix_colored + thought_colored)
|
||||
# 将前缀和思考内容作为独立的part添加,避免它们之间出现多余的空格
|
||||
parts.append(prefix_colored)
|
||||
if prefix_colored:
|
||||
parts.append(prefix_colored)
|
||||
parts.append(thought_colored)
|
||||
|
||||
elif module_color:
|
||||
|
||||
Reference in New Issue
Block a user