1.7 KiB
1.7 KiB
ADR-010:测试运行资源与生命周期
状态
已接受
决策
- 能力探测是
POST /runs创建的运行内部第一阶段,不再提供独立/capabilities/probe。 - 完整探测结果随 Run 持久化;同一 Run 的恢复和重试复用该结果,探测失败不写缓存,新 Run 重新探测。
POST /runs创建,GET /runs列表,GET /runs/{run_id}查询,形成标准创建与读取接口。- 运行参数和结果属于审计事实,禁止任意修改。
PATCH /runs/{run_id}只接受status=cancelled,表示协作式取消。 - 取消不会强杀正在进行的一次上游 HTTP 请求;该请求结束后保存已有结果并停止后续样例,状态保持
cancelled。 DELETE /runs/{run_id}只删除cancelled、completed、completed_with_errors或failed终态,并同时删除逐条结果;非终态返回 409。POST /runs/{run_id}/resume保留为明确的生命周期动作,不伪装成 CRUD 更新。resume只补跑未落库样例,已有 error 也视为检查点;completed_with_errors必须使用POST /runs/{run_id}/retry-errors,后者移除 error 并只重新排队失败样例。POST /runs/{run_id}/results/{execution_id}/retry仅接受completed或completed_with_errors:移除指定结果、保留其他检查点,并复用原 Run 的 profile 和自动仲裁设置。
边界
当前任务在单进程内调度并协作取消,部署命令固定为 uv run uvicorn app.main:app --workers 1,不得同时启动多个服务进程。需要多进程部署、立即中断网络请求或跨进程取消时,再引入数据库原子抢占或可取消任务队列;当前规模不增加该设施。