2014-11-05 58 views
1

我正在使用flask版本0.10.1和python版本2.7.6当用户打开并解锁时,“锁定”资源

我有一个管理某些订单的Web应用程序。 比方说,我们有3个订单:

order 1 
order 2 
order 3 

有一种观点

@main.route(/prder/<int:orderid>, methods=['GET']) 
edit(orderid): 
    pass 

的看法是入店只有注册用户,我有一个用户对象。 比方说,我们要用户用户A和用户B

当A的编辑为了这1为了不应该由用户B.编辑

我需要一个机制,“锁定”的秩序和秩序在用户A正在处理订单时无法进行编辑。

这种“锁定”需要撤销当用户完成编辑*

  • 有用户A关闭浏览器或停止量级上工作的情况。然后我不希望订单永远“锁定”。

任何想法是实现上述功能的最佳方式?

回答

0

我从来没有使用烧瓶,但它听起来像你想mutex(例如多线程here)。当B尝试编辑A已经编辑的内容时,该做什么应该是另一回事。

至于不被永远锁定,需要多一点的信息。通过“停止在订单上工作”,你的意思是闲置了一段时间,或关闭了一些窗口?我敢肯定的try...finally建设将解锁,无论是try块提前结束的内部事件的互斥体,但我没有用它足够的经验来告诉你,一定的。

+0

停止的顺序可能是很多事情上合作。可能会闲置一段时间(忘记关闭浏览器/丢失互联网连接等),还关闭浏览器窗口或点击订单上的保存按钮。 – gosom 2014-11-05 10:35:17