[英]Can one SQS poller, handle multiple SQS queues and prioritize it?
我有一個用例,其中有 2 個 SQS 隊列,每個隊列都在獲取消息。 但條件是如果我在 FIRST 隊列中獲取消息,我將停止從 SECOND 隊列讀取消息並優先處理 FIRST 隊列消息。 我可以只使用一個 SQS 輪詢器來處理這個問題嗎?
問題陳述:我經常在 FIRST 隊列中收到消息,但這些都是重要的消息。 但是我不斷地在 SECOND 隊列中獲取消息。 所以,如果輪詢器正在處理第二個隊列的消息,並且突然有新消息出現在第一隊列中,那么處理完第二隊列的消息后,它應該跳轉到第一隊列並開始取消息從那里直到第一個隊列為空。
有解決辦法嗎?
這是處理優先消息的好方法。
如果您只有一個消息消費者(您稱之為“輪詢器”),那么它應該:
您需要將此行為編碼到您的消費者中。 沒有從多個隊列輪詢的內置功能。
如果您正在運行多個消費者,那么您可能希望讓每個消費者都執行上述操作,或者您可以將其中的一部分分配給僅來自特定隊列的進程。 例如:
或者,您可以決定使用 AWS Lambda 函數來處理您的消息。 在這種情況下,隊列將被並行處理,但不會給予一個隊列高於另一個隊列的優先級。 在這種情況下分配優先級的唯一方法是為每個隊列使用的 Lambda 函數分配不同的並發值。 如果達到容量限制,這將使優先級隊列具有更多的並發性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.