【发布时间】:2010-12-01 06:44:35
【问题描述】:
我想知道 db.run_in_transaction() 是否充当数据存储操作的 锁 并在同一实体上并发访问时提供帮助。
在下面的代码中是否保证并发访问不会导致竞争,而不是创建新实体,它不会进行覆盖
db.run_in_transaction() 是否正确/最好的方法
在下面的代码中,我试图用下面的代码创建新的唯一实体
def txn(charmer=None):
new = None
key = my_magic() + random_part()
sk = Snake.get_by_name(key)
if not sk:
new = Snake(key_name=key, charmer= charmer)
new.put()
return new
db.run_in_transaction(txn, charmer)
【问题讨论】:
标签: python google-app-engine transactions google-cloud-datastore