服务器响应时间达到10秒,微信内置浏览器自动重发请求的问题

移动开发 码拜 4年前 (2017-05-03) 2276次浏览
本人在做一个公众号的开发,其中一个业务的响应时间会超过10秒,本人就发现一旦响应时间达到10秒(准准的10秒),微信内置浏览器就会不定数量地一次性重发刚才的请求,无论同步还是异步,结果都一样。
当本人用同步的时候:
用户点击菜单直接访问servlet,该servlet连接数据库和其他socket服务器进行一系列数据操作,由于某些原因这些操作将达到10秒以上,当到达10秒时,该servlet连续接到5个相同的请求(本人的请求里有一个参数是发起请求时的时间戳,还不一定是5个),本人以openId和时间戳为准判断能否是重复提交,是就忽略(本人把这5个请求忽略掉了,只留下了第一次的正确请求),这时第一次的请求仍在进行数据整理工作,当第一次请求的数据整理完成后需要回显到页面时,就显示不出来了,本人认为此时的页面已经不是第一次请求时的页面了,第一次的线程被微信浏览器抛弃了;
当本人用异步的时候:
用户点击菜单访问JSP,该JSP内置的javascript异步程序自动访问上面那个servlet,servlet开始整理数据,达到10秒时servlet又收到一次相同的请求(这个请求里面也有一个时间戳参数),本人把这次重复的请求忽略掉(直接return或返回空串),则javascript直接收到被忽略掉的这个请求的返回数据(空串),此时第一次请求还在进行数据整理,当第一次请求整理完数据要返回给异步时,异步程序就接不到数据了,感觉第一次的异步请求也被微信浏览器抛弃了似的。
这个问题本人研究4天了,想不出什么办法了,求各位指引迷津。
解决方案

100

5 秒既重发。
你的事务超过5秒才响应也太慢了。腾讯本人的标准似乎是100多毫秒就必须反馈客户端!

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明服务器响应时间达到10秒,微信内置浏览器自动重发请求的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)