码迷,mamicode.com
首页 > 编程语言 > 详细

防止线程并发导致事务的重复执行

时间:2019-08-22 18:53:58      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:语句   回滚   mysq   没有   结束   清除   bsp   info   并发   

1.可以借助第三方,如redis进行处理,在事务执行之前通过对Redis hash 添加一个记录标记当前有事务正在执行,在事务结束之后,删除对Hash记录,防止缓存数据过多。为了防止异常导致的事务没有执行成功而下一次不能执行事务的可能。需要针对事务块代码进行捕获异常进行处理,总之,finally 需要清除掉当前正在执行的标记。

2.可以通过Mysql建立数据字典表,设置好主键,通过本地事务的方式,只有成功往数据字典插入记录才执行事务,否则,回滚事务。这里需要注意的是,插入重复键值时,需要通过再Insert 语句中加入IGNORE 关键字,表示自动忽略重复的记录行,不影响后面的记录行的插入,返回影响行数为0.。不通过加该关键字处理也行,捕获插入异常,插入成功,提交事务,异常,回滚事务。只不过有强迫症的表示对这个不能忍。=.=||,如下图,

技术图片

 

防止线程并发导致事务的重复执行

标签:语句   回滚   mysq   没有   结束   清除   bsp   info   并发   

原文地址:https://www.cnblogs.com/hanisem151/p/11395898.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!