Хотя в функции, украшенной транзакцией, если вызываются другие функции, которые делают вещи для объектов db, является ли транзакция транзакции всей транзакции?

Например:

    def baz(self, id):
        return SomeModel.get_by_id(id)

    def boo(self, bar):
        # Do something to bar
        bar.put()

    @ndb.transactional()
    def foo(self, id):
        bar = self.baz(id)
        self.boo(bar)

Является ли обращение foo безопасным транзакционным? Если нет, почему бы и нет?

1
добавлено отредактировано
Просмотры: 2
nl ja de

1 ответы

Я понятия не имею, почему вы думаете, что вызов другой функции не будет транзакционным. Конечно, это будет: API не знает и не заботится о том, откуда происходят ваши звонки, он просто знает, когда вы вводите транзакционную блокировку и когда вы ее позже покинете.

1
добавлено
-1 для snark ...
добавлено автор Jeff O'Neill, источник