关于微信端领取到卡包,由于异步执行操作,导致领取到卡包的时候数据异常

问题:由于微信端领取到卡包本事是一个异步操作,因为你不确定用户进入微信领卡页面后是何时点击的领卡,只能等微信推送的success事件,这个时候我要再请求后端,获取该卡的详情用于展示,此步骤在ios端不存在问题,因为用户如果不点击左上角的返回按钮,success事件是不执行的,而安卓端则不同,只要用户点击了领卡,success会立即执行,这就造成了保存卡面信息和读取卡面信息两个接口起了冲突,由于网络原因。通常会造成读取不出来任何信息(因为此时保存的接口还没执行完)。

解决:针对该问题,我们提出了两种解决方案,第一种使用长链接websocket来请求读取卡面信息的接口,不过此方法和使用定时函数频繁请求的做法差不了太多,所以没有采用,第二种是后端进行加锁操作,如果是读取的先进来,将其锁住,在短时间内停止操作,在该段时间里如果收到同一id的保存接口,则开始执行保存,保存完毕释放读取接口,返回信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值