- 起因
- 需求场景
- 思路-TODO
- 解决方案-TODO
Cause
过滤水机售卖,充值4元后进行灌水,当剩余水量0.1L时,再充值2元。此时面板上剩余的水量会变成6元的水量,触发BUG
Scenes
类似于游泳池一边放水一边加水问题。
如何保证水管仍然持续出水的情况下,第二次充值时,单次通信情况下水量正确增加同时因为水管仍放水,继续正确扣减水量
Thought
Condition
- 水一直出水,需要持续扣减
- 不能通过暂停出水方式避免误差
- 充值后,出水Client只能对后端请求一次,且机能问题无法使用长轮训及Ajax请求
- 后端不能通过后台修正,否则会造成Client端与服务端剩余水量问题
- 尽可能减少充值与减少时的误差
How To FIX?
更改逻辑
摩拜单车方式
扫码启动机器—3分钟内未接水/主动点击关闭功能进行中断—生成计费账单
解决:
持续费用扣减,误差缩小,不需修正,没有时差
遗留问题:
需多一次IO