【问题标题】:Queuing requests based on user基于用户的排队请求
【发布时间】:2017-05-18 12:46:27
【问题描述】:

首先,一些背景知识:我们有一个用户帐户管理系统 (AMS),大约有 10,000 个用户。用户访问不同的网站并进行购买。反过来,网站也会奖励用户。所有交易详情以及账户余额都保存在我们的 AMS 中。

AMS API 从网站接收令牌和操作描述: 1. 用户购买 2. 网站给予用户的奖励

问题 - 我们注意到,在高流量期间 - 用户即使在余额降至 0 后也能够进行多次购买。发生的情况是 - 第一个请求可能仍在处理中,而第二个请求到达系统。我想让每个用户的请求进入队列,以便正确处理。

请就我应该做些什么来减轻这种痛苦给出一些明确的指示。系统采用.NET/MSSQL开发。

问候

【问题讨论】:

  • 怎么会有人在这里提供任何真正的帮助?我们不知道您的系统目前是如何工作的。这里有数十种潜力,但它们都取决于您的系统如何工作。也许停止使用 NOLOCK 提示......但不知道您是否正在使用它们。也许使用锁定提示?如果没有更多细节,任何人都可以猜到。而且这一切听起来都远远超出了在线论坛的范围。
  • 我知道这个问题有点含糊。我期待有关使用服务总线或队列等架构的解决方案。
  • 但我们对您当前的系统一无所知,我们无法帮助您找到更好的解决方案。我的猜测是你的一些设计问题导致你的系统处理东西完全太慢。此外,我感觉您正在使用脏读,这将允许这种确切的事情。

标签: c# .net sql-server concurrency


【解决方案1】:

您是否在 SQL 代码中使用事务? 事务将允许您为同一用户发出另一个请求,等到第一个请求完成...

【讨论】:

    猜你喜欢
    • 2011-06-16
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多