Skip to content
阅读进度

设备命令超时 用户再次点击 会发生什么? ​

返回 工程项目复盘 目录

标准回答 ​

第一次可能已经执行,只是结果未到;第二次如果重新发送,就可能重复执行。因此 UI 防连点只是第一层,SDK 与设备协议还需要请求 ID、幂等或去重规则,并明确未知结果如何查询与恢复。

**参考方案:**对“设置温度为 24 度”这样的目标状态操作,可按协议定义幂等;对“执行一次开锁”或“增加一次计数”这类动作,不能盲目重试。连接异常后先确认设备状态或查询请求结果;若协议无法保证,就对外暴露“结果未知”,而不是擅自报失败后重做。

延伸追问 ​

如何实现业务恰好一次?通常需要客户端与服务端或设备共同的持久化、去重和确认协议。单靠 TCP、一个本地 boolean 或 UI 禁用按钮,不能普遍保证跨崩溃与断线的恰好一次执行。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。