0

我使用@MessageMapping註釋來輪詢我的SQS隊列。然而,這裏沒有問題。根據應用程序環境,我有一個關於更改隊列名稱的常見問題。Spring Cloud SQS @MessageMapping需要常量

可以說,在我的測試環境中,我希望我的@MessageMapping批註從「開發隊列名稱」進行輪詢,但是當我部署到生產時,我想將@MessageMapping值更改爲「生產隊列名稱」。

@MessageMapping(ENV_SPECIFIC_QUEUE_NAME) 
public void poll(String payload) { 
    //do something 
} 

有沒有一種方法可以通過配置來實現?

回答

0

目前無法在@MessageMapping註釋中動態設置隊列名稱。我打開了一個issue以允許使用屬性佔位符設置的屬性。

與此同時,我建議您使用CloudFormation模板。使用此解決方案,您可以使用您在模板中定義的邏輯隊列名稱,並自動將其解析爲其物理名稱。與CloudFormation的集成被描述爲here。有了這個解決方案,您可以使用相同的模板(開發,集成,產品...)啓動多個堆棧,並且您不會遇到與隊列名稱有關的任何問題。

1
@MessageMapping("${queue_name_from_properties file}")