2014-02-13 96 views

回答

2

不,我认为它对TA的概念没有任何用处。

事情是这样的:

def post(self): 
    second_method() 
    my_txn(key) 

@db.transactional 
def my_txn(key): 
    myobj = db.get(key) 
    myobj.property = x + 1 
    db.put(obj) 

您应该使用事务,以便确保读取(获得),写(放)是一致的。

通过这种方式,您知道当您获取实体时,并且在您写入实体(如果有任何更改的情况)的同时将放弃此TA并重试(默认值为3)。

在您使用它的方式中,获取是在交易之外从而使交易无效

+1

谢谢!我必须将我的POST分解成未嵌套的方法。 – user1961

+0

我可以问一个后续?如果我的db.get()方法中的实体处理它,然后将它发送到事务中以便在通过事务方法中的键再次获取它之后进行复制,那么这会如何构建您的建议? – user1961

+0

@DanielYoung如果计算是独特的,那么可能是。 如果你依赖于新鲜的价值,那么没有。例如。如果你正在增加一个柜台,那么这是一个坏主意。但是,如果你是MD5对实体进行求和,然后将结果和密钥一起传递给事务,(密钥不会改变),那么是的,这将起作用。 –

相关问题