當我打電話延期交易任務從交易功能,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()
失敗。