gpt4 book ai didi

database - GAE Datastore 同时更新记录的字段

转载 作者:搜寻专家 更新时间:2023-10-30 20:24:55 25 4
gpt4 key购买 nike

理论场景:我有一个在 GAE 数据存储中保存库存的电子商务网站。每条记录都包含项目名称和计数。本店客流量小,库存量大,不可能有多个顾客同时购买同一件商品;这是为了让我们不关注关于在持续的一段时间内每秒多次更新同一记录的数据存储限制。

万一两个客户同时购买同一件商品(这种情况不太可能发生),我该如何正确更新一件商品的记录?对每件商品进行正确计数至关重要。

在 mongo 世界中,我会使用类似 $inc 的操作。您将如何处理 GAE 数据存储的这种情况?

谢谢

最佳答案

Cloud Datastore 事务使用开放式并发,因此您可以同时尝试 2 个事务。如果实体发生变化,一个将失败 - 此时您只需重试失败的事务。

例如,在 Python NDB 中,您可以在事务装饰器中进行特定次数的重试。

示例代码:

from google.appengine.ext import ndb

...

@ndb.transactional(retries=5)
def inc_item_count(item_key, count_purchased):
item = item_key.get()
item.count_purchased += count_purchased
item.put()

return True

网络规模?

如果您超出此解决方案的工作范围,您将想要探索基于任务队列的系统,或者转向 sharding counters每个项目的计数器。

关于database - GAE Datastore 同时更新记录的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40003295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com