web - 生成重复记录的一种情况
访问量: 1272
生成重复记录的一种情况:
Transaction do 1. 保存表1数据库(0.1ms) 2. 发送短消息通知(6s) 3. 保存表2到数据库(0.1ms) end
这里会有问题: 两个请求,间隔3秒,两个请求进来,会导致: 表1被保存2次。 表2被保存1次。
解决办法: 1. 短消息通知,放在transaction后面。 2. 使用正确的顺序 3. 正确的使用transaction, 发现不对,立刻抛出异常 Transaction do 1. 保存表1数据库(0.1ms) 2. 保存表2到数据库(0.1ms) 3. 发送短消息通知(6s) end