[P1-10] 🟡 验证调度启用/停用按钮实际生效 #9

Closed
opened 2026-08-20 14:27:11 +08:00 by tao.chen · 0 comments
Owner

背景

用户报:UI 上点"启用"/"停用"开关,看起来 toggle 切换了,但实际调度行为未变(或反之)。
需要从 UI 一直追到 scheduler,确认 PATCH 是否真正影响下一次 cron 触发。

排查路径

  • 前端 SchedulePage toggle → PATCH /api/v1/schedules/{id} 200?
  • DB schedules.enabled 字段是否按预期翻转(common/db/models/schedules.py:38 定义)
  • APScheduler apscheduler_jobs 表里该 schedule 的 job 状态
  • schedule/scheduler.py _sync_once 是否会读 enabled=0 后 pause_job
  • 跨副本场景:一个副本改了 DB,其他副本的 _sync_once 多快感知(5s 轮询?)

已知干扰项

  • P2-4 提到 run_schedule_now 不校验 enabled,可能误导"停用"测试——若 toggle 后还能手动跑,需独立区分
  • idx_schedules_workspace 索引里 enabled 是第二列,query 走全表扫描的可能

验收

  • enabled=1 → 下次 cron 触发正常
  • enabled=0 → 下次 cron 触发被拦截(用 log 验证,而不是"看起来没跑")
  • toggle 后 DB、scheduler 状态在 5s 内一致

引用

backend/schedules.py PATCH 路由 / common/db/models/schedules.py:38 / schedule/scheduler.py _sync_once / frontend/app/features/schedules/SchedulePage.tsx


Task: g61h7g20zwcggp14hxszytw0

## 背景 用户报:UI 上点"启用"/"停用"开关,看起来 toggle 切换了,但实际调度行为未变(或反之)。 需要从 UI 一直追到 scheduler,确认 PATCH 是否真正影响下一次 cron 触发。 ## 排查路径 - [ ] 前端 SchedulePage toggle → `PATCH /api/v1/schedules/{id}` 200? - [ ] DB `schedules.enabled` 字段是否按预期翻转(`common/db/models/schedules.py:38` 定义) - [ ] APScheduler `apscheduler_jobs` 表里该 schedule 的 job 状态 - [ ] `schedule/scheduler.py` `_sync_once` 是否会读 `enabled=0` 后 pause_job - [ ] 跨副本场景:一个副本改了 DB,其他副本的 _sync_once 多快感知(5s 轮询?) ## 已知干扰项 - P2-4 提到 `run_schedule_now` 不校验 enabled,可能误导"停用"测试——若 toggle 后还能手动跑,需独立区分 - `idx_schedules_workspace` 索引里 enabled 是第二列,query 走全表扫描的可能 ## 验收 - [ ] enabled=1 → 下次 cron 触发正常 - [ ] enabled=0 → 下次 cron 触发被拦截(用 log 验证,而不是"看起来没跑") - [ ] toggle 后 DB、scheduler 状态在 5s 内一致 ## 引用 `backend/schedules.py` PATCH 路由 / `common/db/models/schedules.py:38` / `schedule/scheduler.py` _sync_once / `frontend/app/features/schedules/SchedulePage.tsx` --- <sub>Task: g61h7g20zwcggp14hxszytw0</sub>
tao.chen added the priority:highstatus:to-do labels 2026-08-20 14:27:13 +08:00
tao.chen added status:in-review and removed status:to-do labels 2026-08-21 11:26:38 +08:00
tao.chen added status:done and removed status:in-review labels 2026-08-21 11:32:19 +08:00
tao.chen added status:archived and removed status:done labels 2026-08-24 10:09:10 +08:00
tao.chen reopened this issue 2026-08-24 10:09:14 +08:00
tao.chen added the status:to-do label 2026-08-24 10:09:25 +08:00
tao.chen removed the status:to-do label 2026-08-24 14:25:14 +08:00
tao.chen reopened this issue 2026-08-24 14:25:35 +08:00
tao.chen added the status:to-do label 2026-08-24 14:26:03 +08:00
tao.chen added status:done and removed status:to-do labels 2026-08-24 14:51:11 +08:00
tao.chen added status:in-review and removed status:done labels 2026-08-24 14:51:53 +08:00
tao.chen reopened this issue 2026-08-24 14:51:56 +08:00
tao.chen added status:done and removed status:in-review labels 2026-08-24 14:53:26 +08:00
tao.chen added status:in-review and removed status:done labels 2026-08-24 14:53:47 +08:00
tao.chen reopened this issue 2026-08-24 14:53:50 +08:00
tao.chen added status:done and removed status:in-review labels 2026-08-25 19:16:46 +08:00
tao.chen added status:in-review and removed status:done labels 2026-08-25 19:17:01 +08:00
tao.chen reopened this issue 2026-08-25 19:17:06 +08:00
tao.chen added status:to-do and removed status:in-review labels 2026-08-25 19:17:15 +08:00
tao.chen added status:done and removed status:to-do labels 2026-08-27 18:53:58 +08:00
Sign in to join this conversation.