2017-05-18 51 views
0

首先,一些背景:我们有一个约10K用户的用户帐户管理系统(AMS)。用户访问不同的网站并进行购买。这些网站反过来会奖励用户。所有的交易细节以及账户余额都保存在我们的AMS中。基于用户的排队请求

的AMS API接收的令牌和行动说明从网站为: 1.购买由用户做出的网站提供给用户

问题 2.活动奖励 - 我们注意到,在高流量 - 用户即使在他的余额下降到0之后也能够进行多次购买。发生的事情是 - 第一次请求可能还在进行中,而第二次请求可能还在进行中,而第二次请求可能在系统中。我想让每个用户的请求进入一个队列,以便它得到正确处理。

请给我一些明确的指示,说明我应该如何减轻这种痛苦。该系统使用.NET/MSSQL开发。

Regards

+0

如何提供任何真正的帮助?我们不知道您的系统目前的工作方式。这里有几十个潜力,但他们都依赖于你的系统如何工作。也许停止使用NOLOCK提示......但如果你正在使用它们,则不会提供线索。也许使用锁定提示?如果没有更多的细节,最好的人都可以做到。这听起来好像超出了在线论坛的范围。 –

+0

我知道这个问题有些含糊。我期待有关使用某些体系结构(如服务总线或队列等)的解决方案。 – sabkaraja

+0

但是我们不知道您当前的系统,我们无法帮助您找到更好的解决方案。我的猜测是你的一些设计问题导致你的系统处理速度太慢。此外,我有一种感觉,你正在使用肮脏的读取,这将允许这种确切的事情。 –

回答

0

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