refactor: remove scheduler service and unify celery dispatch

This commit is contained in:
chengkai3
2026-05-02 10:18:40 +08:00
parent a4f2debabc
commit cf0a5c978e
13 changed files with 56 additions and 330 deletions
+50
View File
@@ -51,3 +51,53 @@
- 风险与影响:
- 若服务器上已有其他容器占用 `3000`,本次部署会失败(可预期失败),需先释放端口或手动调整冲突容器。
## Work Log - 移除 scheduler 服务并统一任务调度为 API 直连 Celery2026-05-02
- 背景:
- 用户明确要求“去掉 scheduler”。
- 当前仓库默认调度本就为 `celery_direct``scheduler` 仅作为可选分支与独立容器存在。
- 本次改动(最小闭环):
- 后端任务派发收敛为直连 Celery:
- `api/app/services/elevation_service.py`
- 删除 `dispatch_mode` 分支与 `_enqueue_via_scheduler_api` 转发实现。
- 保留单一路径:`apply_elevation_for_line_job.delay(job_id)`
- `api/app/api/v1/elevation.py`
- 删除 `dispatchMode` 查询参数透传。
- 后端路由与配置清理:
- `api/app/api/router.py`
- 移除 `scheduler` 路由注册。
- `api/app/core/config.py`
- 删除 `scheduler_api_token` / `scheduler_default_queue` / `scheduler_api_base_url` 及其 `resolved_*` 属性。
- 保留 `scheduler_expire_interval_seconds` 作为 Celery Beat 定时任务间隔配置。
- 删除 scheduler 相关源文件:
- `api/app/api/v1/scheduler.py`
- `api/app/services/scheduler_service.py`
- `api/app/schemas/scheduler.py`
- `api/app/scheduler_main.py`
- 运行与部署配置同步:
- `docker-compose.yml`
- 删除 `scheduler` 服务。
- 删除 `api` / `celery-worker` / `celery-beat``SCHEDULER_API_BASE_URL``SCHEDULER_API_TOKEN``SCHEDULER_DEFAULT_QUEUE`
- `.env.example`
- 删除 `SCHEDULER_API_BASE_URL``SCHEDULER_API_TOKEN``SCHEDULER_DEFAULT_QUEUE``SCHEDULER_PORT`
- `.github/workflows/main.yml`
- 删除生产 compose 模板中的 `scheduler` 服务块。
- 删除部署模板与默认 `.env` 中的 `SCHEDULER_API_*` / `SCHEDULER_PORT`
- 删除故障诊断日志中的 `fquiz-scheduler`
- 长期记忆更新:
- `MEMORY.md`
- 将“调度与监控口径”更新为“API 直连 Celery,不再保留 scheduler 服务”。
- 验证:
- 语法检查通过:
- `python3 -m py_compile api/app/api/router.py api/app/api/v1/elevation.py api/app/services/elevation_service.py api/app/core/config.py`
- 关键残留检查:
- `rg -n "scheduler_main|services/scheduler_service|api/v1/scheduler|SCHEDULER_API_BASE_URL|SCHEDULER_API_TOKEN|SCHEDULER_DEFAULT_QUEUE|scheduler_api|fquiz-scheduler|SCHEDULER_PORT|resolved_scheduler_" .`
- 仅命中文档历史记录,不再命中运行代码与部署配置。
- 风险与影响:
- 影响范围:任务调度入口、部署编排与环境模板。
- 行为变化:不再支持 `dispatchMode=scheduler_api` 与独立 scheduler HTTP 网关调用。
- 保持不变:默认任务链路(API 直连 Celery)与 Flower 监控链路。