【问题标题】:Transactions in Web2Py over Google App Engine通过 Google App Engine 在 Web2Py 中的交易
【发布时间】:2012-11-29 09:45:15
【问题描述】:

我正在通过 Google App Engine 在 Web2Py 中制作房间预订系统。 当用户预订房间时,系统必须确保该房间确实可用并且之前没有其他人预订过。 为了确保我查询房间是否可用,然后我进行预订。问题是我怎样才能以一种“互斥”的方式进行交易,以确保这个房间真的是给这个用户的?

谢谢!! :)

【问题讨论】:

    标签: python google-app-engine web2py


    【解决方案1】:

    互斥已经内置在 DBMS 中,所以我们只需要使用它即可。举个例子吧。

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

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

    希望这会有所帮助。

    【讨论】:

    • 谢谢 Tushar,不幸的是这不是我的情况,我有一个可用房间数量的计数器,我必须减少这个计数器。我需要的是以“孤立”的方式减少它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 2012-11-13
    相关资源
    最近更新 更多