A(获取)
| key 状态 | 服务器动作 | 响应 | 时机 |
|---|---|---|---|
| 未注册 | 注册(过期=now+lease),签发 token | A+token+key | 立即 |
| 已注册 + 已过期 | 续期(now+lease),签发新 token | A+token+key | 立即 |
| 已注册 + 有效(占用中) | 加入等待队列,响应挂起 | A+token+key 或 T+key | 因释放/过期而获得的瞬间,或超过 wait 时返回 T |
R 时直接移交给队首等待者(无需重新竞争,附带新 token)。A → 进入队列)。R(释放)
| key 状态 | 服务器动作 | 响应 |
|---|---|---|
| 已注册,有等待者 | 直接移交给队首等待者(新 token) | R+key |
| 已注册,无等待者 | 删除该 key | R+key |
| 未注册 | 无 | N+key |