fix: 消除死锁隐患

This commit is contained in:
Sakura-RanChen
2026-07-09 10:29:41 +08:00
parent 0b8bb728e2
commit a32500a6a4
6 changed files with 20 additions and 21 deletions
+3 -13
View File
@@ -7,7 +7,6 @@ from config.manage_api_client import (
get_server_config,
get_agent_models,
get_correct_words,
lookup_address_book,
DeviceNotFoundException,
DeviceBindException,
)
@@ -24,7 +23,7 @@ def read_config(config_path):
return config
def load_config():
async def load_config():
"""加载配置文件"""
from core.utils.cache.manager import cache_manager, CacheType
@@ -41,16 +40,7 @@ def load_config():
custom_config = read_config(custom_config_path)
if custom_config.get("manager-api", {}).get("url"):
import asyncio
try:
loop = asyncio.get_running_loop()
# 如果已经在事件循环中,使用异步版本
config = asyncio.run_coroutine_threadsafe(
get_config_from_api_async(custom_config), loop
).result()
except RuntimeError:
# 如果不在事件循环中(启动时),创建新的事件循环
config = asyncio.run(get_config_from_api_async(custom_config))
config = await get_config_from_api_async(custom_config)
else:
# 合并配置
config = merge_configs(default_config, custom_config)
@@ -139,7 +129,7 @@ def ensure_directories(config):
selected_provider = selected_modules.get(module_type)
if not selected_provider:
continue
if config.get(module) is None:
if config.get(module_type) is None:
continue
if config.get(selected_provider) is None:
continue