求订单加锁后自动解锁,该如何处理

求订单加锁后自动解锁
订单加锁方式很简单,维护一个字段Lock 值为0为未锁定,1为锁定。
现求订单在以下两种情况下能自动解锁:
1、订单页面关闭时
2、订单处理用户登录超时
3、其他情况

------解决方案--------------------
1、用户可点击解锁按钮
2、用户关闭页面前先解锁再关闭页面
3、考虑用一个定时程序检测登录超时的用户把他所有的订单解锁
4、其他情况

1.很容易实现。
2.正常的关闭页面可以获取到,那不正常的关闭呢。
3.这就是我说的sql的触发器。
4,其它情况。、
------解决方案--------------------
我觉得可以结合起来使用
1.进入订单页面时就锁表,并写session
2.用timer编写一个windows服务放到服务器端,定时轮询用户session
3.如果用户session丢失(过期),则释放talbe lock