我曾试图让我的整个POST方法都是事务性的,但却无法进行,因为它调用了其他方法,因此嵌套了。所以我所做的就是创建一个事务方法,只是为了完成我的实体的db.put()。
def post(self):
myobj = db.get(key)
myobj.property = x + 1
second_method()
my_txn(my_obj)
@db.transactional
def my_txn(obj):
db.put(obj)
这是创建交易的有效方式吗?
答案 0 :(得分: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)
您应该使用事务以确保read(get)和write(put)是一致的。
通过这种方式,您知道当您获得实体并且直到您编写实体时,如果有任何更改,同时将中止此TA并重试(默认为3)。
在你使用它的方式中,get在交易之外,从而使交易无用