关于mysql并发重复插入问题

发布于 2022-09-11 17:04:38 字数 364 浏览 23 评论 0

1.出现问题的场景
1.网络延时,或者使用FD工具模拟请求

sql
select time form 订单 where uid='15' order by time desc limit 0,1
if(当前时间-time<15){
exit(请勿频繁请求);
}

INSERT INTO 订单 (time, uid,...) VALUES (值1, 值2,....)

下面还有个CURL请求
if(CURL 请求成功){

}else{

}

问题:
搞并发或者网络不稳定情况下..出现了重复插入..没有拦截到..还是进入了curl

需要在进入curl请求前拦截..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

时光清浅 2022-09-18 17:04:38

不要让你的表单重复提交

入怼 2022-09-18 17:04:38

重复请求的处理,主要看你的条件需求。

如果限制同一客户端同一时间只能同一请求。很简单的做法就是,将客户端请求标识放入缓存中。
并在每次访问前判断当前翻个看是否已经有访问请求,有则打回这个请求。反之,则正常处理。

同样客户端,网络层,数据库都可以做同样类似的措施避免重复插入。

胡大本事 2022-09-18 17:04:38

表单重复提交这一点首先要控制,写入时先进行判断,跳过并写入日志

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文