2012-06-30 40 views
1

我想使用Azure表來存儲用戶發佈的數據。並且每當用戶向其他用戶發佈內容時,都應該向該用戶發佈通知。我已經用PokeIn研究了Comet解決方案,看看有沒有辦法。由於我不熟悉這種技術,所以在編寫代碼之前我想先了解一下這種方法。Azure表的SQLDependency解決方案?

我雖然到目前爲止解決這個問題,你可以做反向AJAX調用服務器。然後在服務器上,它會連續檢查數據庫,如果發生了某些變化,則使用while循環。睡眠將被放置,所以它不會使服務器超載。但是這會對數據庫引入大量不必要的檢查。我早些時候問過一個問題here,關於如何進行長時間輪詢。其中一個答案建議使用SqlDependency。但是,這是MS SQL特定的。如果可能的話,我想知道如何在Azure表中執行此操作。

任何意見或答案的一般方法,將不勝感激。

回答

3

我回答根據您的問題,這個問題基本上是貼在瞭如何使用Windows Azure的表(不包含任何數據庫)來編寫這樣的解決方案第一款(研究員SO專業人士可能有不同的方法)。 Windows Azure表本質上是關鍵值對數據庫,因此不存在像SQLDependency這樣的功能。

作爲第一種方法,使用Windows Azure表和Windows Azure的隊列,您可以創建這樣的解決方案。當您將某些內容寫入Azure表時,您可以將消息發佈到Azure隊列。在一個單獨的線程中,您可以繼續檢查隊列狀態,一旦出現消息,您可以採取必要的措施。這種方法的缺點是你需要不斷地偷看隊列,並取決於你在投票中的積極性,它會增加交易成本(約0.001美元,0.001美元),但積極的檢查會快速增加。

另一種解決方案是使用Windows Azure Table和Service Bus。使用服務總線,您不需要使用輪詢,而是可以開發一種解決方案,當您的表格有更新時您將收到通知,然後休息,您可以保重。

我所看到的都是由用戶實現,依賴於應用程序的可用性的成本變化會如此不編碼複雜度的解決方案。選擇Windows Azure的隊列或者服務總線之前,我建議閱讀下面的文章,瞭解兩者之間的差異,以做出更好的決定:

Windows Azure Queues and Windows Azure Service Bus Queues - Compared and Contrasted

+0

謝謝你的建議和信息!我會閱讀這篇文章。 – starcorn

+0

我的榮幸..我愛龍貓! – AvkashChauhan

+0

再次問候。我一直在使用服務總線檢查解決方案。我想知道的一件事是,我需要使用一些Comet解決方案嗎?例如Websync或者PokeIn? – starcorn