2014-03-19 267 views
6

是否可以使用Amazon簡單隊列服務創建優先級隊列?Amazon SQS優先級隊列

最初我找不到關於這個主題的任何內容,這就是爲什麼我創建兩個隊列。通用隊列和優先隊列。我按照我定義的規則將消息排入此隊列,但在出列消息時出現混亂。

如何對隊列進行長時間輪詢,使得我的隊列組合表現得像一個優先級隊列?

回答

4

我認爲你在正確的軌道上創建兩個隊列 - 普通隊列和優先隊列。

在這種情況下,您不一定需要長時間的投票。由於優先級隊列中的消息優先於正常隊列中的消息,因此您可以採用如下方法:

  1. 輪詢優先級隊列,直到沒有更多消息。
  2. 輪詢正常隊列並在正常隊列中的每條消息之後重複步驟1。
+0

民意調查是一個阻塞調用。如果隊列中沒有消息,我將被阻塞在優先級隊列中,並且永遠不會移動到正常隊列中。 –

+0

這取決於你用什麼API來輪詢隊列。這裏的文檔提到你可以指定等待時間。在這裏短暫的等待時間應該相當於一個簡單的檢查,看看是否有消息 - http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html – Nikhil

+0

雅,不要使用長輪詢它根本不會阻止。 –

1

你可以使用Shoryuken並設置較高的權重來配置優先級:

queues: 
    - [high_priority_queue, 5] 
    - [low_priority_queue, 1]