091fb97291
Return sync/files immediately with background runner; show loc_zh in validation errors; remove servers toolbar CSV export button.
1.1 KiB
1.1 KiB
2026-06-08 — 推送按钮改为后台任务提交
变更摘要
文件推送不再阻塞 HTTP 直至全部子机完成;点击「推送」后按钮仅短暂 loading,任务在后台执行,进度由 WebSocket + 下方进度列表展示。
动机
用户反馈推送按钮长时间转圈,期望与脚本执行类似:提交后立即进入后台任务。
根因
POST /api/sync/files 同步等待 sync_engine_v2.sync_files 全部 rsync 结束才返回;前端 :loading="pushing" 与 HTTP 阻塞绑定。
涉及文件
server/background/sync_push_runner.py(新)server/api/sync_v2.py— 校验后schedule_sync_files,返回accepted: truefrontend/src/composables/push/usePushProgress.ts—submitting与 toastfrontend/src/components/push/PushToolbar.vuefrontend/src/pages/PushPage.vue
迁移 / 重启
- 需重启 API / 重建镜像
- 前端需 build
验证方式
- 推送页选多台子机 → 点推送:按钮转圈仅数秒内结束,出现「推送已提交」toast,下方进度条持续更新
pytest tests/test_sync_batch_id.py -q