我目前正在用C#构建ASP.NET MVC Web应用程序。

我要确保已构建此应用程序,以便将来可以进行扩展而无需进行重大重构。

我非常热衷于使用某种队列将对数据库的任何写操作发布到数据库中,并具有一个异步轮询该队列以执行更新的过程。一旦将这些数据发布回数据库,客户端就需要使用新信息进行更新。这意味着基于服务器上执行的业务规则,将数据写回到数据库的过程可能需要很短的时间。

我的问题是,从客户端\浏览器的角度来看,处理更新的最佳方法是什么。

我正在考虑将数据发布回服务器,并将其添加到队列中,然后立即向客户端发送响应,然后以某种频率进行轮询以获取更新的数据。任何对此的最佳实践或模式将不胜感激。

此外,就从数据库中读取数据而言,您是否建议使用任何特定技术,或者在我的情况下直接从db读取就足够了。

更新
以为我已经发布了此消息的更新,因为已经有一段时间了。实际上,我们最终使用了Windows Azure,但是该解决方案适用于其他平台。

我们最终要做的是使用Windows Azure队列向其中发布消息\命令。这是一个非常快速的过程,并且会立即返回。然后,我们有一个工作角色,该角色在另一个线程上处理这些消息。从理论上讲,这使我们可以最大程度地减少Web角色上的任何数据库写入/更新,从而使我们可以更轻松地进行扩展。

我们会通过电子邮件甚至静默地通知用户,具体取决于我们处理的数据类型。

最佳答案

不确定是否有帮助,但是为什么不每隔30秒在页面上进行一次自动刷新。有时,这就是体育新闻网站上的新闻Feed的工作方式,说该页面每隔x分钟就会更新一次。

10-04 22:03
查看更多