今天做测试时,偶然发现一个罕见的错误。在移动端给按钮绑定点击事件,事件发生时会调用后台接口,对数据库进行数据插入操作。当极快地连续两次点击按钮后,后台返回错误信息如下:
文字信息如下:
保存失败,原因是
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
The last packet successfully received from the server was 70,520,947 milliseconds ago.
The last packet sent successfully to the server was 70,520,949 milliseconds ago. is longer than the server configured value of wait_timeout .
You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property autoReconnect=true to avoid this problem.
身为英语渣渣的我只能找有道,明白了其大致意思:
这个问题是后台服务器设置所致,如果前端宝宝们遇到类似的情况,可找后端人员进行沟通。再者,此问题很少见,一般好像也可忽略。
最后说一下关于用户短时间内频繁操作而造成多次调用后台接口以致数据库无效数据过多以及压力过大问题。可根据实际情况设置标志位为1,当用户在第一次点击调用后,将标志位置为0,等到第一次请求成功时(即在ajax的回调函数中可以进行操作时)将其再置为1。关于这类情况之后会做一个详细的整理,在此不再赘述。
以上。