輕量訊息佇列(原 MNS)提供短輪詢(Short Polling)和長輪詢(Long Polling)兩種方式來擷取隊列中的訊息。
短輪詢
建立隊列時,長輪詢時間設定為0,且發起popMessage請求時
waitSeconds
設定為0。使用短輪詢擷取隊列中的訊息,popMessage請求會向Message Service叢集中的一個服務節點發送請求,並立即返回請求相應的訊息,即使該服務節點沒有訊息,SMQ也會立即返迴響應。
長輪詢
建立隊列時,長輪詢時間設定大於0,或發起popMessage請求時
waitSeconds
設定大於0。長輪詢最大值為30秒。第一優先順序是popMessage的waitSeconds
變數,第二優先順序是queue配置的長輪詢時間。使用長輪詢擷取隊列中的訊息,popMessage請求會一直在服務端運行,直到有訊息的時候才返回。既可以保證立即收到訊息,又避免您發送大量無效請求,減少請求次數,降低費用。
注意事項
如果popMessage請求返回無訊息結果次數過多,可適當增加長輪詢時間,減少請求次數以降低費用。