a↗Agent 工程实战中文课程 / v1.0.0⌕ 搜索课程/

M06 练习

← 返回章节
E06-01 · 核心 · 10 分

Outbox故障窗口

run事务提交后队列发送前崩溃。用Outbox修复后,投递器又在发送后标记前崩溃。分别会发生什么?

提示
  • Outbox消除一个丢失窗口,但允许重复投递。
查看参考解与自评
E06-02 · 核心 · 10 分

SSE重连去重

客户端已处理seq=8,9,断线重连收到9,10,11。最终列表是什么?如何避免重新执行退款?

提示
  • 事件消费只是展示,不是业务命令。
查看参考解与自评
E06-03 · 核心 · 10 分

API幂等参数冲突

同用户两次POST /runs使用同一Idempotency-Key,但第二次任务文本不同。应返回旧run、创建新run还是报冲突?

提示
  • 同一键表示同一有效请求意图。
查看参考解与自评
E06-04 · 核心 · 10 分

乐观并发条件

两个Worker读到version=7。写出避免后写覆盖的SQL思路,并说明它不能保护什么。

提示
  • 条件更新的行数是并发信号。
查看参考解与自评
E06-05 · 进阶 · 10 分

事件接口鉴权

POST /runs需要登录,GET /runs/{id}/events不鉴权,因为run_id很长。为什么不够,修复哪些端点?

提示
  • 不可猜测不是资源授权。
查看参考解与自评
E06-06 · 进阶 · 10 分

数据库队列领任务

Worker持有行锁并在事务里等待模型30秒。给改造方案,解释SKIP LOCKED不等于租约。

提示
  • 行锁随事务结束,租约是持久业务字段。
查看参考解与自评