前言
解决此问题的初衷在于生产上的一个保存接口问题,这个接口逻辑比较多耗时长,大约在30s左右。前端做了当前页面按钮的重复点击限制,但是由于接口耗时太长点击按钮后一直在加载中,可能用户就等不及了页面返回了上一步操作,然后又进入这个页面进行保存操作,这样用户多次点击了保存按钮。这就造成了第一次请求还未处理完就又有相同的第二次请求甚至多次请求,导致接口中某个环节数据处理异常。需要解决的问题就是要让第一次请求还没处理完成时不允许第二次请求!
解决方案
通过在网上寻找解决方案,最终发现以下几种解决方式:
1.加锁 (是最简单的实现方式,但是性能堪忧,而且会阻塞请求)
2021年9月17日大约 4 分钟