网络/事务请求去重

在产品的开发过程当中,发现有少数章节重复被建立的状况。分析日志和数据判断是由于服务器接收到重复的请求,而这些请求重复可能有两个缘由:客户端重复发送和网络出现重传现象。服务器

对于这两个方面,我的以为能够从两方面入手:网络

  1. 请求去重,保证服务器只处理一次,同时也须要使客户端只发送一次
  2. 请求与事务绑定,在事务处理的时候只处理一次

在现实中,咱们是使用了第1个方法。在每一个Ajax请求后加RequestID防止重复请求的处理,同时客户端修改代码使不会产生连续请求。这里面RequestID因为是由客户端生成的,不能保证惟一性,因此RequestID须要与Nickname关联。日志

这是一个通用修改,应对的是网络重传问题。可是不能彻底解决章节重复建立问题,只是解决了目前看到的出现问题。server

那进一步思考,重复建立是否是由于API给server提供的信息不够,致使server没法判断是否应该执行?
若是提供足够的信息量是能够判断请求是否应该执行,可是这个足够的信息量很差选取。选取不当可能致使多终端问题,因此把问题复杂化了。事务

如今我能想到的是基于事务惟一的方法,可是具体方法得再去研究。开发

相关文章
相关标签/搜索