zoukankan      html  css  js  c++  java
  • 如此并发性问题

           这几天忙着解决并发性问题,一直也没好的解决方案,查过的一些资料也基本上就是数据库加琐,可我遇到这种情况估计用数据库加琐是很难解决的,下面大概描述这种情况:

           A,B用户(都具有该问这个模块权限的情况下)进入同一个管理列表时,数据都是相同的(因为当时可能还没有被修改),当时A用户就发现某条记录某项还没填写完整点击进去修改,此时B恰好也同时进入了该页面,也有想修改的意思。A用户把其中某项数据填写完整后提交了。而B看到这条记录,其实A用户已经填写完整了,但是他还不知道(看到的还是原先的信息),以为这下记录可能还存在问题,所以他在该记录信息的备注项,填写了“该信息未填写完整”,然后也提交上去。这时这条记录的信息其实就被B用户修改了,而A刚刚把这个填写完整的信息,全被B用户填写的信息覆盖了。

    AB用户看到列表如下:
     

    这时他们发现货物编号为53453453453里面填写不完整,两人正好同时点击进入了修改页。如图:


    A用户把目的港改动了,而B用户在备注填写了一些说明(可能是说目的港填写有错).

    A修改完以后,B随后也做了修改,这时完整的信息其实是被B修改的信息,而A刚刚把目的港改写的信息还是被成被B修改后的原始信息了,就等于A的修改动作没做一样了。

           这种情况如果单纯用数据库,估计很难解决,曾经想过把这条记录在某用户点击编辑时琐定,然后通过会话ID的判写,加记录的ID,此时只能第一个点击编辑的用户,才有编辑权限,当触发Session_End,就结束锁定该记录。

           以上问题是我个人的一点想法,不知园子里的朋友如果处理此问题的,向大家讨教心得。

  • 相关阅读:
    理想解法
    IEEExtreme 2021
    day_1-python前期学习准备篇
    电梯模拟C++
    java线程_01——————————HelloWorld例子
    Unknown tag (c:forEach) 未知的标签
    自动生成Junit单元测试的插件 CodeProAnalytix
    Log4j笔记----01
    Springboot学习笔记_helloWorld篇
    支持开源,崇尚技术,追求真理,充实人生
  • 原文地址:https://www.cnblogs.com/netcorner/p/1255395.html
Copyright © 2011-2022 走看看