C# 基于用户的排队请求

C# 基于用户的排队请求,c#,.net,sql-server,concurrency,C#,.net,Sql Server,Concurrency,首先,一些背景:我们有一个用户帐户管理系统(AMS),大约有10000个用户。用户访问不同的网站并进行购买。这些网站反过来会奖励用户。所有交易详情以及账户余额均由我们的AMS维护 AMS API从以下网站接收令牌和操作说明: 1.用户购买 2.网站给予用户的奖励 问题-我们注意到,在高流量期间,用户即使余额降至0,也可以进行多次购买。发生的事情是-第一个请求可能仍在处理中,而第二个请求击中系统。我想让每个用户的请求进入一个队列,以便它得到正确的处理 请给我一些明确的建议,我应该做些什么来减轻这种

首先,一些背景:我们有一个用户帐户管理系统(AMS),大约有10000个用户。用户访问不同的网站并进行购买。这些网站反过来会奖励用户。所有交易详情以及账户余额均由我们的AMS维护

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

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

请给我一些明确的建议,我应该做些什么来减轻这种痛苦。该系统是用.NET/MSSQL开发的


关于

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

这里有谁能提供真正的帮助?我们不知道你的系统目前是如何工作的。这里有几十种潜力,但它们都取决于系统的工作方式。也许停止使用NOLOCK提示…但如果您正在使用它们,则没有任何线索。也许使用锁定提示?没有更多的细节,任何人都能做到最好。这听起来似乎远远超出了在线论坛的范围。我知道这个问题有些模糊。我期待使用一些架构(如服务总线、队列或其他)的解决方案。但我们对您当前的系统一无所知,我们不可能帮助您找到更好的解决方案。我猜您可能遇到了一些设计问题,这些问题导致您的系统处理东西的速度太慢。此外,我感觉你在使用肮脏的阅读,这将允许这种确切的事情。