IOS-INFO-011:Rust Event export → 本地队列 → ack #119

Open
opened 2026-06-10 21:28:12 +08:00 by wangdl · 0 comments
Owner

目标

实现正确的 Rust event 导出与 ack 流程。

正确流程

Rust exportPendingEventsV2
→ iOS 转 ReadingEventUploadItem
→ iOS 写入本地 ReadingEventUploadQueue
→ 写入成功
→ iOS ackEventsV2
→ Rust 删除 buffer 事件
→ iOS 后续负责上传 API / 重试

错误流程禁止

  • export 后立即 ack
  • API 上传成功后才 ack
  • Rust 长期保存已导出事件
  • iOS 未写入本地队列就 ack

错误处理

  1. 写本地队列失败:不 ack。
  2. 部分写入成功:只 ack 成功写入的 eventIds。
  3. ack 失败:记录错误,下次可重复 ack 或重新 export。
  4. event 映射失败:markEventsFailed。

验收标准

  1. export 后可写入本地队列。
  2. 写入成功后才 ack。
  3. 写入失败不 ack。
  4. 部分成功只 ack 部分。
  5. ack 调用幂等。
  6. 有单元测试。
  7. 有端到端伪测试。
## 目标 实现正确的 Rust event 导出与 ack 流程。 ## 正确流程 ``` Rust exportPendingEventsV2 → iOS 转 ReadingEventUploadItem → iOS 写入本地 ReadingEventUploadQueue → 写入成功 → iOS ackEventsV2 → Rust 删除 buffer 事件 → iOS 后续负责上传 API / 重试 ``` ## 错误流程禁止 - export 后立即 ack - API 上传成功后才 ack - Rust 长期保存已导出事件 - iOS 未写入本地队列就 ack ## 错误处理 1. 写本地队列失败:不 ack。 2. 部分写入成功:只 ack 成功写入的 eventIds。 3. ack 失败:记录错误,下次可重复 ack 或重新 export。 4. event 映射失败:markEventsFailed。 ## 验收标准 1. export 后可写入本地队列。 2. 写入成功后才 ack。 3. 写入失败不 ack。 4. 部分成功只 ack 部分。 5. ack 调用幂等。 6. 有单元测试。 7. 有端到端伪测试。
wangdl added this to the M-IOS-INFO:学习信息采集、上传、继续学习与基础分析闭环 milestone 2026-06-10 21:28:12 +08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/ios-projects#119
No description provided.