页面关闭不靠谱,如果人家没有点击关闭按钮而关闭的网页,你那个订单永远锁定。
session超时的话,可以给sql弄一个触发器,把时间调的和session过期时间一样。

解决方案 »

  1.   

    nevermore_0923:可以给sql弄一个触发器,把时间调的和session过期时间一样
    这两个时间没法同步的,因为用户登录后才有session,这样会造成把登录中的用户处理的订单给解锁的。
      

  2.   

    怎么没有办法?
    用户登录的时候需要创建session.可以获取时间。
    可以调用触发器开始工作。这个过程大概消耗时间不超过2秒。
    而session一般过期时间20分钟和2秒比,这2秒可以忽略。
      

  3.   

    nevermore_0923,你说的很对。
    但是你那种处理方式只适合用户在该超时时限之内不刷新或请求网页,如果用户在该超时时限之内有刷新或请求网页session是不应过期的,而这时调用了触发器岂不是造成误解锁?
      

  4.   

    1、用户可点击解锁按钮
    2、用户关闭页面前先解锁再关闭页面
    3、考虑用一个定时程序检测登录超时的用户把他所有的订单解锁
    4、其他情况1.很容易实现。
    2.正常的关闭页面可以获取到,那不正常的关闭呢。
    3.这就是我说的sql的触发器。
    4,其它情况。、
      

  5.   

    我觉得可以结合起来使用
    1.进入订单页面时就锁表,并写session
    2.用timer编写一个windows服务放到服务器端,定时轮询用户session
    3.如果用户session丢失(过期),则释放talbe lock
      

  6.   

    sql 不是有 加锁 解锁麽?