通过Google App Engine在Web2Py中进行交易

时间:2012-11-29 09:45:15

标签: python google-app-engine web2py

我正在通过Google App Engine在Web2Py中建立一个房间预订系统。 当用户预订房间时,系统必须确保该房间真的可用,并且没有其他人在此之前保留它。 为了确保我查询房间是否可用,我会进行预订。问题是如何以“互斥”的方式进行此交易,以确保这个房间真的适合这个用户?

谢谢!! :)

1 个答案:

答案 0 :(得分:1)

相互排斥已经内置到DBMS中,因此我们必须使用它。让我们举一个例子。

首先,您的模型中的表应该以您的房间号应该是唯一的方式定义(使用UNIQUE约束)。

当User1和User2都查询房间时,他们应该得到一个回复​​,说房间是空的。当两个用户同时发送该房间的“BOOK”请求时,预订功能应该直接将两个用户的“BOOK”请求插入到数据库中。但实际上只会执行一个(因为UNIQUE约束)而另一个会产生DAL异常。抓住异常并回复“BOOK”请求不成功的用户,说你刚刚错过了这个房间: - )

希望这会有所帮助。