refactor: remove scheduler service and unify celery dispatch
This commit is contained in:
@@ -51,3 +51,53 @@
|
||||
|
||||
- 风险与影响:
|
||||
- 若服务器上已有其他容器占用 `3000`,本次部署会失败(可预期失败),需先释放端口或手动调整冲突容器。
|
||||
|
||||
## Work Log - 移除 scheduler 服务并统一任务调度为 API 直连 Celery(2026-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 监控链路。
|
||||
|
||||
Reference in New Issue
Block a user