mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-07-22 01:36:43 +08:00
feat(daemon): 补全 task.cancel 与 task.logs
完成 task.* 命名空间: - task.cancel:每个任务带共享的取消标志(Arc<AtomicBool>),worker 的 should_cancel 同时检查它和 daemon 停止标志;请求取消后置标志,worker 在下一个同步检查点中止, 任务转为 cancelled(协作式,不硬杀正在执行的 curl)。已结束任务返回 already-finished, 不存在返回 700004。 - task.logs:worker 把每条 progress 追加到任务的有界日志(上限 200 行),task.logs 返回该历史;不存在返回 700004。TaskRecord 的 cancel/log 字段 serde(skip),不进 task.status 输出。 - 新增 cancelled 任务状态;prune 与已结束判定纳入 cancelled。 - USERGUIDE RPC 方法表更新(cancel/logs 标为已实现)。 验证:新增取消/日志注册表单测(63 bin 测试全过);真机端到端确认触发 resource.sync 后 task.cancel 使任务转为 cancelled、task.logs 返回进度历史。 对应 issue #1(task.* 命名空间补全)。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+4
-1
@@ -262,7 +262,9 @@ HTTPS_PROXY=http://user:pass@127.0.0.1:7890 bat --auto-discover --daemon
|
||||
| `resource.verify` | ✅ | 触发校验任务(dry-run + audit),返回 `task_id` |
|
||||
| `task.status` | ✅ | 查询任务(`params.task_id`) |
|
||||
| `task.list` | ✅ | 列出全部任务(最新在前) |
|
||||
| `catalog.*` / `patch.*` / `unityfs.*` / `task.cancel` / `task.logs` | ⏳ | 已规划,返回 `BAT-ERR-700003`(not implemented) |
|
||||
| `task.cancel` | ✅ | 请求取消任务(`params.task_id`);协作式,在同步检查点生效 |
|
||||
| `task.logs` | ✅ | 返回任务的进度日志(`params.task_id`,有界) |
|
||||
| `catalog.*` / `patch.*` / `unityfs.*` / `task.create` | ⏳ | 已规划,返回 `BAT-ERR-700003`(not implemented) |
|
||||
| 未知方法 | — | `BAT-ERR-700001`(unknown method) |
|
||||
|
||||
### 任务模型
|
||||
@@ -277,6 +279,7 @@ HTTPS_PROXY=http://user:pass@127.0.0.1:7890 bat --auto-discover --daemon
|
||||
"error": { … }, "result": { … } }
|
||||
```
|
||||
|
||||
- `task.cancel` 请求取消:置任务的取消标志,worker 在下一个同步检查点中止,任务转为 `cancelled`(协作式,不硬杀正在执行的 curl)。
|
||||
- 与后台 watch 循环的定时同步通过进程内锁互斥(任务等待而非失败)。
|
||||
- 任务目前**仅存内存**,随 daemon 生死;持久化(重启后仍可查)为后续工作。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user