战略/模式,以防止GAE / memcache上的更新/竞争条件丢失

时间:2013-04-04 07:59:23

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

示例:

  1. 进程A - 从memcache获取最新版本的实体
  2. 流程B - 从memcache获取最新版本的实体
  3. 进程A - 对(1)中检索到的实体进行一些更新,然后对db / memcache中的puts进行更新
  4. 进程B - 对(2)中检索到的实体进行一些更新,然后对db / memcache中的puts进行更新
  5. 更新3.丢失。

    可以使用什么策略/模式来防止这种情况?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

您应该在事务中进行更新以使其成为原子。

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