0

我正在使用 @MessageMapping 注释来轮询我的 SQS 队列。但是,这里没有问题。我有一个关于根据应用环境更改队列名称的一般性问题。

可以说,在本地,在我的测试环境中,我希望我的 @MessageMapping 注释从“开发队列名称”进行轮询,但是当我部署到生产环境时,我想将 @MessageMapping 值更改为“生产队列名称”。

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

有没有办法通过config来实现?

4

2 回答 2

1
@MessageMapping("${queue_name_from_properties file}")
于 2015-12-11T12:34:18.017 回答
0

目前无法在 @MessageMapping 注解上动态设置队列名称。我打开了一个问题以允许使用将由属性占位符设置的属性。

同时,我建议您使用 CloudFormation 模板。使用此解决方案,您可以使用您在模板中定义的逻辑队列名称,它将自动解析为其物理名称。此处描述了与 CloudFormation 的集成。使用此解决方案,您可以使用相同的模板(开发、集成、产品...)启动多个堆栈,并且队列名称不会有任何问题。

于 2015-01-15T13:56:04.133 回答