Fix getting stuck when loras folder is empty

This commit is contained in:
Will Miao
2025-02-27 06:52:19 +08:00
parent cc09fe7525
commit 561e32a980
2 changed files with 28 additions and 15 deletions

View File

@@ -52,8 +52,9 @@ class LoraRoutes:
try:
# 不等待缓存数据,直接检查缓存状态
is_initializing = (
self.scanner._cache is None or
(hasattr(self.scanner, '_cache') and len(self.scanner._cache.raw_data) == 0)
self.scanner._cache is None and
(self.scanner._initialization_task is not None and
not self.scanner._initialization_task.done())
)
if is_initializing:

View File

@@ -84,19 +84,31 @@ class LoraScanner:
async def _initialize_cache(self) -> None:
"""Initialize or refresh the cache"""
# Scan for new data
raw_data = await self.scan_all_loras()
# Update cache
self._cache = LoraCache(
raw_data=raw_data,
sorted_by_name=[],
sorted_by_date=[],
folders=[]
)
# Call resort_cache to create sorted views
await self._cache.resort()
try:
# Scan for new data
raw_data = await self.scan_all_loras()
# Update cache
self._cache = LoraCache(
raw_data=raw_data,
sorted_by_name=[],
sorted_by_date=[],
folders=[]
)
# Call resort_cache to create sorted views
await self._cache.resort()
self._initialization_task = None
logger.info("LoRA Manager: Cache initialization completed")
except Exception as e:
logger.error(f"LoRA Manager: Error initializing cache: {e}")
self._cache = LoraCache(
raw_data=[],
sorted_by_name=[],
sorted_by_date=[],
folders=[]
)
def fuzzy_match(self, text: str, pattern: str, threshold: float = 0.7) -> bool:
"""