【发布时间】:2017-03-03 02:09:06
【问题描述】:
当我从事务函数调用延迟事务任务时,f、f 可以在延迟任务失败时提交。
但是,如果我通过延迟调用调用f,调用函数会失败。
为了重现,我做了以下操作:
@ndb.transactional()
def f():
# modify datastore entity X
...
x.put()
class X(ndb.Model):
...
def _post_put_hook(self, future)
deferred.defer(y,
_transactional=ndb.in_transaction())
def y():
raise Exception()
当我调用f 时,延迟任务失败,但x.put() 提交。
但是,如果我调用 deferred.f,x.put() 会失败。
【问题讨论】:
标签: google-app-engine app-engine-ndb deferred transactional