在云服务中实施信用补充机制

时间:2017-01-17 21:14:39

标签: c# azure synchronization

背景

我已部署了云服务(C#+ Azure SQL + Azure云服务)。我的网站正在销售一些服务。基于“信用”的付款。用户正在访问API并向服务器提交查询。每个客户端查询都会花费用户一个或多个信用。

我的一个计划是“订阅计划”。进入此计划的用户每月都会为我的服务付费。结果,他们获得了xxx学分(取决于他们购买的订阅计划)。

缺少什么?

我尝试为订阅用户实施补充机制,在月内。例如,用户购买了“每月订阅 - 10个学分”的平原,并在该月的前10天使用了他的所有学分。显然,提交另一个查询后接下来发生的是“需要付款”响应。

有什么问题?

基本上,它可以直接实现此功能。步骤是:

  1. 计算请求的查询积分。
  2. 如果要求支付的信用额度大于用户实际拥有的信用数量。 - >真:重新填充信用。购买另一个xxx学分。 - >错:继续。
  3. 问题是同步所有服务器。在大多数情况下,用户将同时发送大量查询。我的群集中的每个服务器都会收到请求并会说:“嘿,你没有足够的积分。让我们补充一下”。不知道另一台服务器已经启动了支付流程。在这种情况下,服务器将多次重新填充信用,而不是一次(这就足够了)。

    那么,问题是同步多台服务器的正确方法是什么,只有一台服务器会进行信用补充呢?

0 个答案:

没有答案