首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >GAE和BigTable上的拍卖风格交易

GAE和BigTable上的拍卖风格交易
EN

Stack Overflow用户
提问于 2010-08-02 20:58:46
回答 2查看 181关注 0票数 1

创建确保以下内容的机制的最佳方式是什么?例如:

两个人不会在基于BigTable的GAE应用程序的拍卖中同时购买同一物品?

如果有人能用“引擎盖下”之类的描述来启发我,我将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-02 21:14:32

使用AppEngine实现这样的事务非常简单。关键是run_in_transaction方法:

代码语言:javascript
代码运行次数:0
运行
复制
class AuctionItem(db.Model):
    sold = db.BooleanProperty()
    purchaser = db.UserProperty()

def buy(self, buyer):
    def buy_txn():
        sale_success = False
        if self.sold == False:
            self.sold = True
            self.purchaser = buyer
            self.put()
            sale_success = True
        return sale_success

    success = db.run_in_transaction(buy_txn, buyer)
    return success
票数 3
EN

Stack Overflow用户

发布于 2010-08-02 21:09:56

在事务中,检查拍卖是否仍然打开,例如,检查winner字段是否未设置,如果设置了,则将winner设置为当前用户。

因为它发生在交易中,所以不可能在交易过程中被抢走。如果另一个用户试图在同一时刻赢得拍卖,他们将无法写入项目,直到第一个用户完成,在这一点上“它仍然可用吗?”检查将失败。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3387965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档