본문 바로가기

Dev./Google App Engine

Datastore - NDB API(Python) : Transaction

NDB 에서 Transaction을 사용하는 방법

기본적으로 아래와 같이 사용하면 된다.

key = ndb.Key(Greeting, 'joe')

@ndb.transactional
def greet():
    ent = key.get()
    if ent is None:
        ent = Greeting(key=key, message='Hey Joe')
        ent.put()
    return ent

greet()


ndb.transaction() 함수를 사용해도 된다.

key = ndb.Key(Greeting, 'joe')

def greet():
    ent = key.get()
    if ent is None:
        ent = Greeting(key=key, message='Hey Joe')
        ent.put()
    return ent

moraes = ndb.transaction(lambda: greet())


transaction 내에서 에러가 발생할 경우 재시도 횟수도 설정 할 수 있다.

@ndb.transactional(retries=1) # Total of 2 tries
def greet():
  # do greeting





반응형