fix: 跳过自动调度空目录
This commit is contained in:
@@ -202,6 +202,7 @@ def get_target_week_range(week_offset: int = 0) -> tuple[date, date]:
|
||||
1. **自动调度开启时,`auto_delete_source` 强制为 `true`**(前端灰显、后端校验)
|
||||
2. `expected_directories` 为空时按远程 ZIP 实际所在目录逐个检测
|
||||
3. `check_interval_hours` 最小值为 1
|
||||
4. 配置了 `expected_directories` 时,某个预期目录可访问但完全没有 ZIP 文件,视为该目录已停推并跳过;所有目录都为空时不触发自动处理
|
||||
|
||||
---
|
||||
|
||||
@@ -308,7 +309,7 @@ GET /api/remote/scheduler/status
|
||||
| 连续失败 ≥3 次 | 在前端调度状态面板显示红色失败状态 |
|
||||
| 处理失败 | **保留就绪标识**,下次检查时直接触发处理(不重新检测) |
|
||||
| 远程目录不存在 | 跳过该目录,记录警告,其他目录正常检测 |
|
||||
| 目录内无 ZIP 文件 | 该目录判定为未就绪 |
|
||||
| 预期目录内无 ZIP 文件 | 视为该目录已停推并跳过,不阻塞其他目录;如果所有目录都为空,则继续等待,不触发处理 |
|
||||
| 手动触发远程处理 | 自动调度运行中禁止手动触发,反之亦然(互斥锁复用 `global_task_lock`) |
|
||||
|
||||
---
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
- `app/api/routers/remote.py` 新增 `/api/remote/scheduler/status` 和 `/api/remote/scheduler/trigger`,并将远程处理启动逻辑抽成 `start_remote_processing_job()` 供手动按钮和调度器复用。
|
||||
- `frontend/src/components/SettingsPanel.vue` 在远程数据源配置中加入自动调度区域:启用开关、检查间隔、目标周期、预期目录维护、调度状态、刷新状态和立即检查。配置下载/上传会随 `RemoteData` 一起携带自动调度配置。
|
||||
- 已验证:文件名日期解析、目标周计算、每目录 7 天筛选、调度开启强制删除源文件配置、调度日期精确筛选逻辑均通过临时 Python 片段;`.venv\Scripts\python.exe -m compileall app` 与 `npm run build` 通过,前端构建仅保留既有 Vite 大 chunk 警告。
|
||||
- 后续调整:预期目录可访问但完全没有 ZIP 文件时,自动调度会把该目录标记为 `skipped/已停推`,不再阻塞其他目录就绪;但所有目录都为空时不会写入 ready flag,也不会触发处理。
|
||||
|
||||
## 2026-05-25:修复 API Token 指定日期输入不可见
|
||||
|
||||
|
||||
Reference in New Issue
Block a user