1

我想使用 Azure 表来存储用户发布的数据。每当用户向其他用户发布内容时,它都应该向该用户发出通知。我已经用 PokeIn 研究了 Comet 解决方案,看看是否有办法。由于我是这种技术的新手,我想在编写代码之前了解这种方法。

到目前为止,我要解决这个问题的方法是您可以对服务器进行反向 ajax 调用。然后在服务器上,它会通过一个while循环不断检查数据库,如果有什么变化。将设置睡眠,以免服务器超载。然而,这会给数据库带来很多不必要的检查。我之前在这里问过一个问题,关于如何进行长轮询。建议使用 SqlDependency 的答案之一。然而,这是特定于 MS SQL 的。如果可能的话,我想知道如何在 Azure 表中执行此操作。

对一般方法的任何评论或答案将不胜感激。

4

1 回答 1

3

我根据您基本上发布的第一段来回答这个问题,在该段中如何使用 Windows Azure 表(没有任何数据库)来编写这样的解决方案(SO 专业人员可能有不同的方法)。Windows Azure 表本质上是键值对数据库,因此没有 SQLDependency 之类的功能。

作为第一种方法,您可以使用 Windows Azure 表和 Windows Azure 队列来创建这样的解决方案。当您向 Azure 表写入内容时,您会向 Azure 队列发布一条消息。在一个单独的线程中,您可以继续检查队列状态,一旦有消息,您就可以采取必要的措施。这种方法的缺点是您需要不断地查看队列,并且取决于您在轮询中的积极程度,它会增加交易成本(0.001 美元约为 10,000),但积极的检查会很快增加很多。

另一种解决方案是使用 Windows Azure 表和服务总线。使用服务总线,您无需使用轮询,而是可以开发一个解决方案,当您的表格有更新时,您会收到通知,然后您就可以放心了。

我已经看到了用户实施的解决方案,并且取决于应用程序的可用性,成本会有所不同,编码复杂性也会有所不同。在选择 Windows Azure 队列或服务总线之前,我建议阅读下面的文章以了解两者之间的差异以做出更好的决定:

Windows Azure 队列和 Windows Azure 服务总线队列 - 比较和对比

于 2012-06-30T17:10:28.407 回答