当前位置: 首页 > news >正文

建站公司网站 discuz亚马逊市场营销案例分析

建站公司网站 discuz,亚马逊市场营销案例分析,WordPress怎么安装不了,长春火车站电话人工服务文章目录 介绍原因分析:修改代码一波三折,再次出现问题 介绍 遇到了一个很有意思的问题。 在service层加了事务。 为了防止并发,在component层加了分布式锁。 先根据前端传入的id,在数据库中使用queryA()查到一个key然后对这个key进行加锁再…

文章目录

    • 介绍
    • 原因分析:
    • 修改代码
    • 一波三折,再次出现问题

介绍

遇到了一个很有意思的问题。
在service层加了事务。
为了防止并发,在component层加了分布式锁。

  1. 先根据前端传入的id,在数据库中使用queryA()查到一个key
  2. 然后对这个key进行加锁
  3. 再次调用queryA()。目的是为了做校验
  4. 更新数据库
  5. 在component层释放锁

最终现象是:加锁失败。

线程A获取到了锁,然后执行下面的操作。
线程B等待这把锁。
线程A执行完了之后,释放锁。
线程B查数据库,依然校验成功。按理说A操作了数据,线程B的校验应该不通过。
实际上线程B没有读到线程A更新后的数据

原因分析:

数据库mysql的隔离级别是 可重复读。

那么在线程B等待锁的时候,已经缓存了一份数据库连接了。
此时A更新了数据,然后释放锁(假设提交了事务),由于是可重复读级别的事务隔离,所以线程B此时无论如何都读不出来线程A修改的数据。
后来解决方法就是让前端传key进来。

修改代码

也就是代码改成了

1. 前端传入key
2. 然后对这个key进行加锁
3. 调用数据库的queryA()方法。目的是为了做校验
4. 更新数据库
5. 在component层释放锁

此时线程A获取到了锁,直到事务提交了,线程B才开始数据库连接,此时正常

一波三折,再次出现问题

经过上面的分析,
现在我也怀疑,是不是在事务提交前就释放了锁呢?

http://www.15wanjia.com/news/24528.html

相关文章:

  • asp.net mvc做网站难吗百度竞价点击软件
  • 企业网站建设尚未实现宣传功能百度指数官网查询
  • 腾讯云wordpress建站常州seo招聘
  • 专门做书籍设计的网站北京网站优化方式
  • 江苏外贸型网站制作站长seo查询
  • app web网站 区别好看的html网页
  • 建设网站公司 优帮云360推广联盟
  • 网站建设学习百度推广有哪些形式
  • 学做热干面网站企业宣传片制作
  • 绵阳专门做网站的公司有哪些企业培训权威机构
  • wordpress静态页制作贵州seo技术培训
  • 济南哪里有做网站的泉州seo外包
  • 邵阳 网站开发 招聘色盲测试图免费测试
  • 旅游网站建设策划方案爱站网seo工具
  • 阿里云oss做网站备份购物网站有哪些
  • 如何在百度上注册自己的网站企点
  • 徐州免费模板建站软文写作什么意思
  • 廊坊做网站企业教程网站设计模板网站
  • 西安网站建设费用上海站群优化
  • 做外贸网站好的公司2022最新小学生新闻
  • 政府网站建设运行情况百度网站ip地址
  • 国内做网站百度网站流量查询
  • 青岛红岛做网站晚上免费b站软件
  • 无锡手机网站制作2022百度指数排名
  • 中国科协网站建设招标360优化大师最新版
  • 怎么把自己做的网站传网上谷歌广告代理商
  • 做网站自己申请域名还是建站公司投稿网站
  • 电影网站html源码seo是什么意思呢
  • wordpress可以建立多个站点四川seo快速排名
  • 能进外国网站看视频的浏览器百度免费安装下载