gpt4 book ai didi

ruby-on-rails - 当 4000 人试图在几秒钟内购买时,确保该商品只能由 1 人购买

转载 作者:数据小太阳 更新时间:2023-10-29 07:21:56 26 4
gpt4 key购买 nike

我运行一个市场 iOS 应用程序,我们不时有“竞争”,我们有一个特别抢手的项目以优惠的价格出售,在特定时间下降。有时成千上万的人会在 1-2 秒内尝试购买该商品,因此我需要确保只有 1 个人会得到该商品。我现在的解决方案感觉有点笨拙,所以我想知道当我使用 Firebase 作为我的数据库时,一个好的解决方案会是什么样子。

过程是这样的:

  1. 用户在他的 iOS 应用程序上找到该商品并点击“购买”。
  2. 向我们的 API(基于 RoR 构建)发送一个请求来处理购买(购买通常需要 10-20 秒才能完成)。

现在,我暂时将买家 ID 设置为商品的属性,我稍等片刻,检查商品上的买家 ID 是否仍然相同。它有效,但感觉不是最佳的。

关于如何确保 2 个人不能购买同一件商品,有什么建议吗?

最佳答案

要避免在您的 Rails 应用程序中出现此类情况,关键字 mutexrace condition 应该可以帮助您找到一堆合适的 gem。

我个人喜欢使用 redis 来完成这种任务,因为在 redis 中,事务默认是原子的(https://en.wikipedia.org/wiki/Atomicity_(database_systems))。

所以也许这个 gem 可以满足您的需求(未经测试):https://github.com/kenn/redis-mutex .

理论可以引用这篇文章:

关于ruby-on-rails - 当 4000 人试图在几秒钟内购买时,确保该商品只能由 1 人购买,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36275473/

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