我做了一个扫码签到软件,其基本的逻辑如下:
1、判断扫码者是否扫码过,如果已经扫码过禁止重复扫码,如果没有扫码过进入步骤2;
2、扫码,写入数据,返回成功。
问题是:
同一秒扫码的人数可能有点多(高峰期在一两百人左右),服务器有点反应不过来,
很多人的扫码请求卡在了步骤一和步骤二之间(验证通过,等待写入扫码数据),问题就出在这里:
因为手机上一直转圈圈,很多人没有耐心,于是重新扫码,因为其前一个请求处于等待写入的状态,此时步骤一的判断依然会对其放行(因为还没写入成功扫码的表中),让其第二个请求成功进入步骤二,这就造成写入了两个扫码成功,造成签到重复。请问有啥好办法能解决这个问题呢?