首页 > 解决方案 > 在运行时将 SQS 队列动态修改为 @SqsListener 方法?

问题描述

@SqsListener(value = "foo", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
    public void fooMethod(final String message)  {
        processEvents(message);
    }

我在我的应用程序中使用spring-cloud-starter-aws-messaging - @SqsListener在启动时加载 foo 队列就好了。但是,当应用程序启动并运行处理来自队列的事件时,如果我想将队列更改为不同的队列,比如动态地说 foo-test,那可能吗?

背景:我正在尝试运行我的部署的测试队列部分,并且部署将从测试队列开始。一旦处理了来自测试队列的消息并且测试成功,我想将队列动态更改为生产队列。

请告知如何实现这一目标。如果有其他方法,请告诉我。谢谢!

标签: javaspring-bootspring-cloudspring-cloud-awssqslistener

解决方案


AFAIK,无法动态切换值。我猜您想这样做,以便您的应用程序仅在您确定应用程序代码足够好并且逻辑没有损坏时才开​​始使用生产消息。

如果上述假设是正确的,那么当您的应用程序升级到 TEST 环境时,这应该得到验证,或者您可以使用主动/被动 PROD 部署解决它,其中两个部署使用不同的属性。


推荐阅读