当我打电话延期交易任务从交易功能,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()
失败。