2012-11-29 49 views
0

我正在Web2Py上通過Google App Engine製作房間預訂系統。 當用戶預訂房間時,系統必須確保該房間真的可用,並且沒有其他人在一會之前保留它。 爲了確保我查詢房間是否可用,然後進行預訂。問題是我怎樣才能以一種「相互排斥」的方式來做這個交易,以確保這個房間真的是這個用戶?Web2Py通過Google App Engine的交易

謝謝! :)

回答

1

相互排斥已經內置到DBMS中,所以我們只需要使用它。讓我們舉個例子。

首先,模型中的表格應該以您的房間號碼應該是唯一的(使用UNIQUE約束)來定義。

當用戶1和用戶2都查詢房間時,他們應該得到一個迴應說房間是空的。當兩個用戶同時發送該房間的「BOOK」請求時,預訂功能應該直接將兩個用戶的「BOOK」請求插入到數據庫中。但是隻有一個會被執行(因爲UNIQUE約束),另一個會產生一個DAL異常。趕上例外和迴應誰的「書」的請求是沒有成功的用戶說,你剛剛錯過了這個房間的瞬間:-)

希望這可以幫助。

+0

謝謝Tushar,不幸的是,這不是我的情況,我有一個可用房間數量的櫃檯,我必須減少這個櫃檯。我需要的是以「暴曬」的方式減少它。 –