多次使用Google App Engine - 全部失败或全部成功?

时间:2012-08-29 23:28:13

标签: google-app-engine

我在Google App Engine上运行游戏服务器。我的一些HTTP请求会导致多个放入不同的模型。所以我有一个用户模型和一个游戏模型,例如,一个请求可以写入两者。我正在使用python和NDB数据库接口。

有没有办法确保两者成功,或者即使一个人成功,一个人都失败了?交易听起来像是正确的事情,但我在阅读文档之后并不清楚,它正在讨论多个请求和冲突。

我确实看到单个put可以获取实体列表,但我没有看到任何提及是否失败然后它们都失败了。

2 个答案:

答案 0 :(得分:2)

是的,交易是您所需要的。您需要使用Ancestor正确构建数据,以便在事务中将它们全部写入。

如果任何看跌失败,则不会写入交易中的任何看跌期权。在文档中说得很对。

https://developers.google.com/appengine/docs/python/datastore/transactions

答案 1 :(得分:0)

您可以使用XG事务更新最多5个实体组(如果您不使用父子模型,最多可以更新5个对象)。

每个实体组(或对象)都限制大约1个事务/秒。

ndb事务:https://developers.google.com/appengine/docs/python/ndb/transactions xg交易的限制:https://developers.google.com/appengine/docs/python/datastore/overview#Cross_Group_Transactions