我在Azure存儲中有一個名爲例如'messages'的隊列。每過1小時,一些服務就會推送一些消息來更新數據。但是,在某些情況下,我還會從其他位置推送此隊列消息,並且我希望立即處理此消息,並且我無法爲此消息設置優先級。Azure隊列消息優先級
這個問題的最佳解決方案是什麼? 我可以使用兩個不同的隊列('消息'和'消息優先'),或者它是一個壞的方法?
我在Azure存儲中有一個名爲例如'messages'的隊列。每過1小時,一些服務就會推送一些消息來更新數據。但是,在某些情況下,我還會從其他位置推送此隊列消息,並且我希望立即處理此消息,並且我無法爲此消息設置優先級。Azure隊列消息優先級
這個問題的最佳解決方案是什麼? 我可以使用兩個不同的隊列('消息'和'消息優先'),或者它是一個壞的方法?
正確的方法是使用多個隊列 - 「普通優先級」和「高優先級」隊列。我們實現的是單個輔助角色中的多個隊列讀取器線程 - 每個線程首先檢查高優先級隊列,如果其爲空,則查看普通隊列。這樣,高優先級的消息將由第一個可用線程處理(幾乎立即),並且無論消息來自何處,相同的代碼都會運行。它還節省了必須讓讀者不斷查看單個隊列,並且因爲很少有消息而必須退回。
對於Windows Azure隊列,您無法設置優先級消息,因此您唯一的選擇是使用2個獨立的隊列。我可以建議你看看Windows Azure服務總線隊列嗎?我沒有親自使用它,但我相信它比Windows Azure隊列更豐富。 –
我還沒有使用Windows Azure服務總線隊列,但會嘗試調查它。 – bogdan
https://msdn.microsoft.com/en-us/library/dn589794.aspx?f=255&MSPPError=-2147217396 – vladimir77