想象一下这种情况:你有一个WCF网络服务,每天可以达到一百万次.每个匹配包含一个"帐户ID"标识符.WCF服务托管在分布式ASP.NET群集中,并且您没有对服务器的远程桌面访问权限.
您的目标是将每个帐户ID的"每小时点击次数"保存到SQL数据库中.结果应如下所示:
[Time], [AccountID], [NumberOfHits]
1 PM, Account ID (Bob), 10 hits
2 PM, Account ID (Bob), 10 hits
1 PM, Account ID (Jane), 5 hits
Run Code Online (Sandbox Code Playgroud)
问题是:如果不在每次点击时连接到SQL服务器数据库,如何才能做到这一点?
这是我想到的一个解决方案:将临时结果存储在System.Web.Cache对象中,监听其过期,并在Cache Expiration上,在Cache过期时将所有累积数据写入数据库.
有关更好方法的任何想法?