"锁"用户打开时的资源,完成后解锁

时间:2014-11-05 09:48:36

标签: python 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不能编辑此订单。

我需要一种机制来锁定&#34;当用户A正在处理订单时,订单和订单无法进行编辑。

这&#34;锁定&#34;当用户完成编辑*

时需要撤销
  • 有用户A关闭浏览器或停止处理订单的情况。然后我不希望订单被锁定&#34;永远。

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

1 个答案:

答案 0 :(得分:0)

我从未使用过烧瓶,但听起来你想要一个mutex(多线程here的例子)。当B尝试编辑A已经编辑的东西时应该是什么行为是另一回事。

至于永远不被锁定,需要更多信息。通过“停止处理订单”,你的意思是闲置一段时间,或关闭一些窗口?我很确定try...finally构造会在try块内的任何内容过早终止的情况下解锁互斥锁,但我没有足够的经验来告诉你肯定的。