1

我正在使用供应商门户。一家商店的主人将登录并在导航栏中(类似于脸书),我希望销售的物品数量能立即出现,而不需要任何刷新。在脸书中,新的通知立即弹出。我正在使用sql azure作为我的数据库。是否可以记录数据库中的更改并立即通知用户?根据数据库值更改发送通知

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

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

回答

1

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

您应该知道,就计算和锁定资源而言,近距离通知可能非常昂贵。刷新越多,需要的网页往返次数越多(即使在这种情况下它们最小)。让数据新鲜到数据库对数据库来说也可能是昂贵的,因为您可能会创建大量的请求,这反过来会影响其他性能良好的请求。例如,如果您的网站以1000个登录用户运行,则每秒可能需要1000个数据库请求(假设这是您的INSTANT定义),如果设计不正确,则可能会在SQL Azure中创建限制条件。

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

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

希望这会有所帮助。

+0

非常感谢您分享这些知识。我知道这将是相当昂贵的;但让我们说,这个商业案例更像是一种低估态度。想象一下,这些必须是必须的。立即我的意思是,一旦更改被插入到数据库中,相关用户会立即得到通知。我听说过轮询和推送sql缓存依赖关系,(参见第2部分) – test 2012-03-27 22:26:26

+0

,但是从我们搜索的内容中获得;这些不能在SQL Azure数据库上实现;因此我们正在寻找另一种机制;相同类型的机制,例如移动应用程序的推送通知,一旦插入通知,它会立即发送到手机。现在我想将其应用于网络。感谢您的时间和耐心! – test 2012-03-27 22:26:48