я хочу знать, если 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)