M06 练习
← 返回章节Outbox故障窗口
run事务提交后队列发送前崩溃。用Outbox修复后,投递器又在发送后标记前崩溃。分别会发生什么?
提示
- Outbox消除一个丢失窗口,但允许重复投递。
查看参考解与自评
SSE重连去重
客户端已处理seq=8,9,断线重连收到9,10,11。最终列表是什么?如何避免重新执行退款?
提示
- 事件消费只是展示,不是业务命令。
查看参考解与自评
API幂等参数冲突
同用户两次POST /runs使用同一Idempotency-Key,但第二次任务文本不同。应返回旧run、创建新run还是报冲突?
提示
- 同一键表示同一有效请求意图。
查看参考解与自评
乐观并发条件
两个Worker读到version=7。写出避免后写覆盖的SQL思路,并说明它不能保护什么。
提示
- 条件更新的行数是并发信号。
查看参考解与自评
事件接口鉴权
POST /runs需要登录,GET /runs/{id}/events不鉴权,因为run_id很长。为什么不够,修复哪些端点?
提示
- 不可猜测不是资源授权。
查看参考解与自评
数据库队列领任务
Worker持有行锁并在事务里等待模型30秒。给改造方案,解释SKIP LOCKED不等于租约。
提示
- 行锁随事务结束,租约是持久业务字段。