• 陈泽健's avatar
    fix(scheduler): 定时任务立即执行未生成执行记录 + 取消即停中断后台线程 · bdac1140
    陈泽健 提交于
    5.44 前端「定时任务」页点击执行后,执行中心始终不生成新执行记录。
    根因:自动调度触发后 task_id 卡住 _running_tasks,所有手动点击被静默吞掉
    (return None),返回 200 但无新 execution。取消执行也不中断 Playwright 线程,
    run_execution 阻塞在 worker_thread.join() 上,全局锁数小时不释放。
    
    1. **scheduler_service.py** — run_task_once(task_id, manual=False) 新增
       manual 参数,手动触发绕过任务级 _running_tasks 守卫(仍受全局锁约束)
    
    2. **scheduled_tasks.py** — POST /{task_id}/run 改为同步预检:
       全局锁占用 → 返回 status:skipped + running_execution_id;
       空闲 → manual=True 触发,返回 status:triggered
    
    3. **execution_service.py** — 取消信号机制:
       request_cancel / is_cancel_requested / clear_cancel_requested 线程安全函数;
       cancel_execution 置 cancelled 后调用 request_cancel;
       run_all_cases_sync 用例循环开头检查并中断剩余用例;
       实时进度回调 _persist_case_result 按用例 commit
    
    4. **playwright_executor.py** — 步骤边界检查取消请求:
       execute_step 重试循环开头查 is_cancel_requested → 置 _cancel_requested
       → break 退出重试;最终状态设为 skipped
    
    5.44+5.202 已部署(deploy_scheduled_fix.py),容器 healthy
    Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
    bdac1140
名称
最后提交
最后更新
.claude Loading commit data...
.github/workflows Loading commit data...
Docs Loading commit data...
backend Loading commit data...
deploy Loading commit data...
frontend Loading commit data...
.gitignore Loading commit data...
CLAUDE.md Loading commit data...
HANDOFF.md Loading commit data...
HANDOFF_UI自动化.md Loading commit data...
HANDOFF_V2部署升级.md Loading commit data...
HANDOFF_安全测试.md Loading commit data...
HANDOFF_性能测试.md Loading commit data...
HANDOFF_自动化部署测试.md Loading commit data...
HANDOFF_设备模拟.md Loading commit data...
HANDOFF_设备模拟_主题配置改造.md Loading commit data...
README.md Loading commit data...
deploy_to_560.py Loading commit data...