在发现这个问题后,我对使用Appengine有些担忧: https://cloud.google.com/appengine/docs/python/datastore/transactions
注意:如果您的应用程序在提交时收到异常 交易,并不总是意味着交易失败。您 可以接收Timeout,TransactionFailedError或InternalError 在已经提交交易的情况下的例外情况 最终将成功应用。尽可能让你的 云数据存储交易是幂等的,如果你重复一次 交易,最终结果将是相同的。
Ndb交易: https://cloud.google.com/appengine/docs/python/ndb/transactions
这篇帖子之前已触及过这个主题但未回答: app engine datastore transaction exception
我搜索并了解了这个问题,但找不到更具体的内容。 我有一个游戏,我会做以下事情:
因为一次只修改一个实体(更新进度或pw等)。将来我可能会添加多人游戏,因为它可能意味着一次更新多个实体。
如果我们从拥有的东西开始,我会看到一些问题。我需要准确理解事情是如何运作的。
何时返回TransactionFailedError等异常?每次尝试后或仅在所有重试失败后?
是否有可能对所有这些的可能性进行某种估计?我的意思是,如果我有10个人使用它,我想它永远不会发生,一切似乎都有效,但后来我得到了一百万用户,事情开始在各处失败...... 如果这些问题每年一次发生在一百万用户中的一个,那么就不用担心了,但如果每个用户每周发生一次就会发生灾难。