根据数据库值更改发送通知

时间:2012-03-27 15:52:45

标签: asp.net windows-phone-7 push-notification azure-sql-database mpns

我正在开发供应商门户网站。商店的所有者将登录并在导航栏中(类似于Facebook)我希望销售的商品数量能够立即显示,而不会有任何刷新。在Facebook中,会立即弹出新通知。我使用sql azure作为我的数据库。是否可以记录数据库中的更改并立即通知用户?

我项目的第2部分将包含供应商的手机应用程序。在这个应用程序中我也希望有相同的通知机制。在这种情况下,如果我搜索推送通知并应用它们,我会是正确的吗?

目前我的主要目的是解决第1段中的问题。我能够检索通知的数量,但是如何才能立即显示更改?非常感谢你

1 个答案:

答案 0 :(得分:1)

首先,您需要定义INSTANT对您意味着什么。对某些人来说,这意味着在90%的时间内。对于其他人来说,他们很乐意平均有10-20秒的差距。更重要的是,您需要了解您的要求的含义;换句话说,您的企业等待时间接近零是否值得?您的要求越轻松,构建起来越便宜,维护起来就越容易。

您应该知道,在计算和锁定资源方面,近时通知可能非常昂贵。刷新越多,需要的Web往返越多(即使在这种情况下它们是最小的)。将数据提供给第二个数据也可能对数据库造成代价高昂,因为您可能会创建大量请求,这反过来又会影响其他性能良好的请求。例如,如果您的网站运行时有1000个用户登录,则每秒可能需要1000个数据库请求(假设您的定义是INSTANT),如果设计不当,这可能会在SQL Azure中创建限制条件。

我过去使用的方法,对于类似的要求(虽然精度不是第二个;更像是分钟)是从本地网站缓存中的内存中的表加载所有记录。后台线程锁定并刷新一次性内所有记录的内存数据。这使得我们可以将数据库流量减少一千倍,因为屏幕上显示的数据来自本地缓存,并且需要单个数据库连接来刷新缓存(每个Web服务器)。因为我们有多个Web服务器,并且我们需要所有Web服务器上的数据在彼此之间完全相同,所以我们会同步所有Web服务器的请求以每分钟刷新缓存。把它放在一起需要花费很多时间,但它允许我们构建一个高度可扩展的系统。

上述技术可能无法满足您的要求,但我的观点是,对新数据的需求越高,您需要进行越多的设计/工程工作,以确保您的系统不会受到新鲜度要求的影响。

希望这有帮助。