如果代码在事务中执行,如何检入应用程序引擎?

时间:2013-05-31 10:18:02

标签: google-app-engine google-cloud-datastore

简单的问题 1.如何检查某些代码是否在事务中执行? 2.如果可能,如何获取交易信息?

  def someCode():
    class DeleteMe(db.Model):
      pass

    #how to check it here?
    key = db.Key.from_path(DeleteMe.kind(), 'test')
    model = DeleteMe.get(key)
    if model is None:
      model = DeleteMe(key = key)
      model.put()

我想检查someCode()是否在事务中运行:

db.run_in_transaction(someCode)

与否:

someCode()

1 个答案:

答案 0 :(得分:3)

您可以使用db.is_in_transaction()

请参阅文档https://developers.google.com/appengine/docs/python/datastore/functions#is_in_transaction

如果您刚开始,我建议您考虑查看ndb而不是db。 ndb具有等效的ndb.in_transaction()

您应该查看事务上下文对象,以查看可以获取/设置的其他信息

https://developers.google.com/appengine/docs/python/datastore/functions#create_transaction_options