2014-11-05 103 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