这是在 appengine交易文档中...
注意:如果您的应用程序在提交事务时收到异常,并不总是意味着事务失败。在事务已提交并最终将成功应用的情况下,您可能会收到 Timeout、TransactionFailedError 或 InternalError 异常...
考虑以下场景
A
我在事务中更新实体。- 事务操作导致上述特殊“异常”,其中事务已提交并最终将被应用
- 我
db.get(entity_a_key_goes_here)
在第 2 步之后或几乎与第 2 步同时在另一个事务中运行。 - 如果上面的第 3 步返回,我通过将密钥设置为和它
None
来创建该实体(第 3 步和此步骤在同一事务中运行)。entity_a_key_goes_here
db.put()
我的问题:
上述步骤 3 中的事务 操作是否有可能db.get()
返回过时的值(或者不是步骤 1 中设置的更新值)?db.get()
即使“奇怪的”事务异常发生在它之前,事务操作是否保证返回最新的结果?