我使用Azure的環境和發展.NET管理多個Azure的服務總線隊列同時
我運行一個Web應用程序(ClientApp),其採用的客戶端數據進行一系列的計算。這些計算是性能密集型的,因此它們在單獨的Web應用程序(CalcApp)上運行。
當前,ClientApp將計算請求發送到CalcApp。來自每個客戶的請求都被放入一個公共隊列,並且每次運行一個FIFO。我的目標是爲每個客戶創建單獨的隊列並同時運行幾個計算。
我想使用Azure服務總線隊列來實現這一點。在ClientApp上,服務總線將檢查該客戶端的現有隊列,並在需要時創建一個隊列。在CalcApp上,應用程序會定期檢查現有的隊列。如果它找到一個新的隊列,那麼它會創建一個新的QueueClient,它使用OnMessageAsync()和RunCalculationsAsync()作爲回調函數。
這是可行的,甚至是一個好主意?
我仍然能夠處理這種模式的重複檢測?通過混合計算按鈕,可能讓客戶非常不耐煩。 – clenard
通過重複我假設你的意思是在一個特定的客戶端的用戶多次請求計算,並且同一事件的多條消息登陸隊列。 Azure構建了可以配置的重複檢測。或者,您可以使用持久存儲來了解任務是否已完成。您可以創建一個SQL表,DocumentDB等,在過程開始時檢查這種情況。在這個過程結束時,爲這個值加上標記,以便下一個需要處理的消費者知道它已經完成。 – DanielG
有關原生重複檢測的信息:http://blog.iquestgroup.com/en/windows-azure-service-bus-duplicate-detection/#.Vnl7CblIjmF – DanielG