feat(tasks): implement atomic claims and leases
This commit is contained in:
@@ -30,6 +30,23 @@ Android 导航名称是逻辑目的地,具体 Compose/Fragment 形式待接入
|
||||
| `task/{id}/result` | 任务结果 | 查看终态和同步状态 | US-002、US-006 | IX-007、IX-008 |
|
||||
| `settings` | 设备设置 | 查看权限、版本、后端和模型连接状态 | US-003、US-007 | IX-004、IX-005 |
|
||||
|
||||
## App 后端路由
|
||||
|
||||
以下路由只接受有效 BUYER Bearer token,认证 principal 中的用户和设备是权威身份:
|
||||
|
||||
| 路由 | 职责 |
|
||||
| --- | --- |
|
||||
| `POST /api/v1/devices/heartbeat` | 上报版本、就绪位并核对服务端活跃任务 |
|
||||
| `POST /api/v1/tasks/claim-next` | 用户点击后原子领取或重放领取结果 |
|
||||
| `GET /api/v1/tasks/{id}/reference-image` | 用当前 claim 读取该任务匿名参考图 |
|
||||
| `POST /api/v1/tasks/{id}/start` | `CLAIMED -> RUNNING` 并创建 execution |
|
||||
| `POST /api/v1/tasks/{id}/heartbeat` | 更新 step、设备在线时间和运行租约 |
|
||||
| `POST /api/v1/tasks/{id}/release` | 未开始时 `CLAIMED -> PENDING` |
|
||||
| `POST /api/v1/tasks/{id}/cancel-ack` | 安全停止后确认 `CANCELED` 并结束 execution |
|
||||
|
||||
claim/start/release/cancel-ack 使用相应幂等规则;参考图、start、task heartbeat、
|
||||
release 和 cancel-ack 都必须匹配当前 `X-Claim-Token` 与 `claim_generation`。
|
||||
|
||||
## 导航规则
|
||||
|
||||
- App 有活跃任务时启动后优先恢复该任务,不允许直接领取下一条。
|
||||
|
||||
Reference in New Issue
Block a user