[Task][T06] 实现指定/空闲领取、租约与设备串行 #8

Closed
opened 2026-08-14 14:24:40 +08:00 by ila · 4 comments
Owner

基本信息

要解决的问题

实现 next/claim/start:指定任务只能由指定设备领取,未指定任务由在线空闲设备原子领取;数据库租约配合 Android 本地互斥。

范围

实现 next/claim/start:指定任务只能由指定设备领取,未指定任务由在线空闲设备原子领取;数据库租约配合 Android 本地互斥。

明确不做

  • 不接入顺云宝、Shopee 或采购。
  • 不实现批量任务、规则发布流程、全局停机或实时屏幕。
  • 不保存原始控件树和截图,不使用 OCR/VLM。

验收标准

没有双领;一台设备最多一个运行任务;同一商品最多一个 pending/running;重复 requestId 幂等。

验证方式

单元测试、接口/数据库约束测试;涉及 Android 行为时增加华为和一加真机验证。

参考文档

  • docs/03-business-rules-and-glossary.md
  • docs/07-mvp-requirements.md
  • docs/08-agent-api-contract.md

风险和回退

保持写接口幂等、任务输入快照不可变和设备串行;数据变化须提供兼容迁移或明确回退。

## 基本信息 - 上级 Epic: #1 - 所属 MVP: #2 - 任务编号: T06 - 前置依赖: #4、#5、#6 - 原始需求确认: 2026-08-14 ## 要解决的问题 实现 next/claim/start:指定任务只能由指定设备领取,未指定任务由在线空闲设备原子领取;数据库租约配合 Android 本地互斥。 ## 范围 实现 next/claim/start:指定任务只能由指定设备领取,未指定任务由在线空闲设备原子领取;数据库租约配合 Android 本地互斥。 ## 明确不做 - 不接入顺云宝、Shopee 或采购。 - 不实现批量任务、规则发布流程、全局停机或实时屏幕。 - 不保存原始控件树和截图,不使用 OCR/VLM。 ## 验收标准 没有双领;一台设备最多一个运行任务;同一商品最多一个 pending/running;重复 requestId 幂等。 ## 验证方式 单元测试、接口/数据库约束测试;涉及 Android 行为时增加华为和一加真机验证。 ## 参考文档 - docs/03-business-rules-and-glossary.md - docs/07-mvp-requirements.md - docs/08-agent-api-contract.md ## 风险和回退 保持写接口幂等、任务输入快照不可变和设备串行;数据变化须提供兼容迁移或明确回退。
ila changed title from [Task][T06] 实现任务分派、领取租约与设备串行约束 to [Task][T06] 实现指定/空闲领取、租约与设备串行 2026-08-14 15:09:27 +08:00
Author
Owner

依赖 T02~T04 已完成且用户已验收。现开始实施 T06,先核对共享契约、数据约束与现有设备接口,再实现任务领取、租约和单设备串行。

依赖 T02~T04 已完成且用户已验收。现开始实施 T06,先核对共享契约、数据约束与现有设备接口,再实现任务领取、租约和单设备串行。
Author
Owner

实现完成,进入待验收。

实现:Agent next/claim/start API;指定与空闲任务选择;事务行锁;两分钟租约与 leaseVersion;claim/start requestId 幂等;设备在线/忙碌/竞争/租约错误码;Android API 客户端与进程内 TaskExecutionMutex;共享契约更新。

验证:go test ./...、go build ./...、核心包 go test -race、Android testDebugUnitTest assembleDebug 均通过。未重启用户当前服务,MySQL 新字段将在下次启动迁移。

实现完成,进入待验收。 实现:Agent next/claim/start API;指定与空闲任务选择;事务行锁;两分钟租约与 leaseVersion;claim/start requestId 幂等;设备在线/忙碌/竞争/租约错误码;Android API 客户端与进程内 TaskExecutionMutex;共享契约更新。 验证:`go test ./...`、`go build ./...`、核心包 `go test -race`、Android `testDebugUnitTest assembleDebug` 均通过。未重启用户当前服务,MySQL 新字段将在下次启动迁移。
Author
Owner

2026-08-15 ?????? T15 ?????????????????????????? 6949e53 ??,??????

2026-08-15 ?????? T15 ?????????????????????????? 6949e53 ??,??????
ila closed this issue 2026-08-15 14:29:11 +08:00
Author
Owner

???????????????:????? T06?2026-08-15 ??????? T06 ????;?????????

???????????????:????? **T06**?2026-08-15 ??????? T06 ????;?????????
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#8