fix: 添加延迟确保批量 Deep Scan 严格限制并发为 2

问题:
- re_scan_file API 是异步的,立即返回成功
- 后端可能同时启动多个扫描任务
- 导致有 4 个文件同时在 scanning 状态

临时修复:
- 在每个文件启动扫描后等待 2 秒
- 确保后端有足够时间开始处理并释放资源
- 保持前端并发控制为 2,避免过多任务同时启动

未来改进:
- 需要在后端实现真正的队列机制
- 或者检查当前 scanning 状态,动态调整启动速度
This commit is contained in:
2026-10-08 01:37:35 +08:00
parent 4e1df67857
commit e83d5c7a8c

View File

@@ -1899,8 +1899,7 @@ async function batchDeepScan() {
actionMsg.value = `Starting: ${immediateCount} immediate, ${queueTotal} queuing...` actionMsg.value = `Starting: ${immediateCount} immediate, ${queueTotal} queuing...`
const tasks = filesToProcess.map((f) => { async function processFile(f: any) {
return limit(async () => {
const fileUuid = f.file_uuid const fileUuid = f.file_uuid
if (!fileUuid) { if (!fileUuid) {
failCount++ failCount++
@@ -1936,6 +1935,9 @@ async function batchDeepScan() {
fileStatusCache.value[fileUuid] = 'scanning' fileStatusCache.value[fileUuid] = 'scanning'
await syncFileStatus(fileUuid) await syncFileStatus(fileUuid)
} }
// 等待 2 秒,确保后端开始处理并释放资源
await new Promise(resolve => setTimeout(resolve, 2000))
} else { } else {
failCount++ failCount++
} }
@@ -1945,8 +1947,9 @@ async function batchDeepScan() {
} finally { } finally {
processing-- processing--
} }
}) }
})
const tasks = filesToProcess.map((f) => limit(() => processFile(f)))
await Promise.all(tasks) await Promise.all(tasks)