spring cloud aws多个sqs监听器

2024-02-06

我的项目中有2个sqs监听器。我希望其中之一具有相同的设置,而其中之一具有不同的设置。我想要更改的唯一值是 maxNumberOfMessages。

最实用的方法是什么?我想为其中一个侦听器设置不同的 maxNumberOfMessages 值。

这是我的配置;

@Bean
public AWSCredentialsProvider awsCredentialsProvider(@Value("${cloud.aws.profile}") String profile,
                                                     @Value("${cloud.aws.region.static}") String region,
                                                     @Value("${cloud.aws.roleArn}") String role,
                                                     @Value("${cloud.aws.user}") String user) {
    ...

    return new AWSStaticCredentialsProvider(sessionCredentials);
}

@Bean
@Primary
@Qualifier("amazonSQSAsync")
public AmazonSQSAsync amazonSQSAsync(@Value("${cloud.aws.region.static}") String region, AWSCredentialsProvider awsCredentialsProvider) {
    return AmazonSQSAsyncClientBuilder.standard()
            .withCredentials(awsCredentialsProvider)
            .withRegion(region)
            .build();
}

@Bean
@Primary
public SimpleMessageListenerContainerFactory simpleMessageListenerContainerFactory(AmazonSQSAsync amazonSqs) {
    SimpleMessageListenerContainerFactory factory = new SimpleMessageListenerContainerFactory();
    factory.setAmazonSqs(amazonSqs);
    factory.setMaxNumberOfMessages(1);
    factory.setWaitTimeOut(10);
    factory.setQueueMessageHandler(new SqsQueueMessageHandler());
    return factory;
}

这是听众;

@SqsListener(value = "${messaging.queue.blabla.source}", deletionPolicy = SqsMessageDeletionPolicy.NEVER)
public void listen(Message message, Acknowledgment acknowledgment, @Header("MessageId") String messageId) {
    log.info("Message Received");

    try {
        ....
        acknowledgment.acknowledge().get();
    } catch (InterruptedException e) {
        e.printStackTrace();
    } catch (ExecutionException e) {
        e.printStackTrace();
    } catch (Exception ex) {
        throw new RuntimeException(ex.getMessage());
    }
}

以下黑客对我有用(如果每个侦听器侦听不同的队列)

@Bean
public SimpleMessageListenerContainerFactory simpleMessageListenerContainerFactory(AmazonSQSAsync amazonSqs) {

    return new SimpleMessageListenerContainerFactory() {
        @Override
        public SimpleMessageListenerContainer createSimpleMessageListenerContainer() {
            SimpleMessageListenerContainer simpleMessageListenerContainer = new SimpleMessageListenerContainer() {
                @Override
                protected void startQueue(String queueName, QueueAttributes queueAttributes) {
                    
                    // A place to configure queue based maxNumberOfMessages
                    
                    try {
                        if (queueName.endsWith(".fifo")) {
                            FieldUtils.writeField(queueAttributes, "maxNumberOfMessages", 1, true);
                        }
                    } catch (IllegalAccessException e) {
                        throw new RuntimeException(e);
                    }
                    super.startQueue(queueName, queueAttributes);
                }
            };
            simpleMessageListenerContainer.setAmazonSqs(amazonSqs);
            return simpleMessageListenerContainer;
        }
    };
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring cloud aws多个sqs监听器 的相关文章

  • 逐行读取 JTextPane

    有没有办法读取a的内容JTextPane逐行 很像 BufferedReader 吗 Element root textPane getDocument getDefaultRootElement 获得根元素后 您可以检查存在多少个子元素
  • AES BadPaddingException

    如果我使用错误的密钥或错误的盐进行解密 则会引发 BadPaddingException 我希望返回一个不正确的字符串 doFinal 导致解密方法出现异常 信息 This is just an example Unfug S F V s
  • 带有 @Scheduled Spring 注释的方法的切入点

    我想要一个带有注释的方法的 AspectJ 切入点 Scheduled 尝试了不同的方法但没有任何效果 1 Pointcut execution org springframework scheduling annotation Sched
  • Hibernate、MySQL 视图和 hibernate.hbm2ddl.auto = 验证

    我可以在 Hibernate 中使用 MySQL 视图 将它们视为表 即 该实体与为表创建的实体没有什么不同 但是 当 Hibernate 设置为验证模型时 我的应用程序将不会部署 因为它找不到视图 因为它假设它是一个表 是否可以在启用部署
  • IntelliJ 建议错误的 @NotNull 注释

    IntelliJ 建议导入com sun istack internal NotNull以下程序中的 NotNull 注释 这是错误的 public class Test implements Comparable
  • Android 防火墙与 VpnService

    我正在尝试使用 BS 项目的 VpnService 为 Android 实现一个简单的防火墙 我选择 VpnService 因为它将在非 root 设备上运行 它将记录连接并让您过滤连接 基于IP 有一个应用程序可以做到这一点 因此这是可能
  • Knuth-Morris-Pratt 算法

    解决方案是Knuth Morris Pratt 算法 https en wikipedia org wiki Knuth E2 80 93Morris E2 80 93Pratt algorithm 干草堆 AAAAAAAAA 针 AAA
  • Java中的运算符重载和覆盖

    运算符重载和运算符重写有什么区别 它们在继承和控制台程序中是否相同 Java 不支持运算符重载和重写 检查以下引用自的描述 http java sun com docs white langenv Simple doc2 html http
  • 酷还是傻? Catch(异常[NamingException, CreateException] e)

    我正在编写一些代码 我注意到异常处理中的一种模式让我思考 try do stuff throws JMS Create and NamingException catch NamingException e log1 e rollback
  • Java Swing JEditorPane:操作样式文档

    我的模型是与枚举类型关联的字符串队列 我试图在 JEditorPane 中显示该模型 队列中的每个元素作为一个单独的 HTML 段落 其属性基于关联的枚举类型 但是 我的更新方法并没有达到我想要的效果 我尝试将 HTML 字符串直接写入文档
  • 在 JSF 自定义验证器中区分 ajax 请求和完整请求

    我的验证器需要知道它是完整请求还是 ajax 请求 在我当前的解决方案中 我检查 http 请求标头X Requested With元素 public void validate FacesContext context UICompone
  • 在 Java/GWT 中解析用户时间输入

    解析用户在 GWT 中的文本字段中键入的时间的最佳方法是什么 默认时间格式要求用户完全按照区域设置指定的时间格式输入时间 我想要更加灵活 因为用户可以通过多种不同的方式输入时间 例如 8 8p 8pm 8 15pm 13 15 1315 1
  • 使用泛型进行选择排序

    我对整数进行了选择排序并且它正在工作 当我尝试修改程序以使用泛型时 编译器会抱怨 我不知道如何修复它 如果有人能提出一些建议和建设性意见 我将不胜感激 这是代码 public class SelelctionSort public stat
  • 如何使 RSACryptoServiceProvider 在没有填充(nopadding)的情况下工作?

    我需要使 C 应用程序与 Java 应用程序兼容 Java 应用程序使用Cipher getInstance RSA ECB nopadding 初始化器使密码 ECB 和无填充 但是 在 C 中 您有 2 个填充选项 OAEP 填充或 P
  • 错误:列“this_.phitorsionangle”必须出现在 GROUP BY 子句中或在聚合函数中使用

    我在执行 sql 查询时遇到了一些问题 我正在使用 Hibernate Criteria 来构建查询 我通过按一定间隔 binSize 舍入值然后对它们进行分组来从数据库创建一些容器 当我直接在 SQL 中使用查询尝试时 效果非常好 SEL
  • 在SPRING BOOT中配置多个数据库

    我正在尝试为我的 Spring Boot 应用程序连接 2 个不同的数据库 但出现此错误 应用程序无法启动 描述 com SyncFibertToolSpring SyncFibertTool MydbDB Config MydbDbCon
  • 使用 OpenNLP 获取句子的解析树。陷入困境。

    OpenNLP 是一个关于自然语言处理的 Apache 项目 NLP 程序的目标之一是解析一个句子 并给出其语法结构的树 例如 天空是蓝色的 这句话 可能会被解析为 S NP VP The sky is blue where S是句子 NP
  • 如何使用 Kafka 发送大消息(超过 15MB)?

    我发送字符串消息到Kafka V 0 8使用 Java Producer API 如果消息大小约为 15 MB 我会得到MessageSizeTooLargeException 我尝试过设置message max bytes到 40 MB
  • Hibernate 命名查询使用 Like 和 % % 运算符?

    在我的 Hibernate JPA 示例代码中 public List
  • 使用 Spring Batch 将文件中的日期解析为 LocalDateTime

    我正在尝试使用 Spring Batch 读取包含日期的 CSV 文件 但在将日期解析为LocalDateTime Object 字段 日期 上的对象 目标 中的字段错误 拒绝值 2017 07 20 04 15 25 0 代码 typeM

随机推荐

  • Spring Boot/GraphQL 和 SQL 语句数量(N+1 期)

    我是 Graphql 的新手 正在研究创建概念证明以了解其工作原理 我正在使用 Spring Boot 2 2 2 RELEASE 并引入 graphql spring boot starter
  • 在 SQL 中命名主键“id”与“something_id”[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 返回文档所有者以获得大量 Google 云端硬盘文档 ID 列表

    我正在尝试识别 Google 云端硬盘中一长串 近 1000 项 文档的所有者 文档之间的所有者可能有所不同 我有每个项目的唯一文档 ID 我是我所在域的 Google Apps 管理员 有一个实用程序可以让我输入文档 ID 并查看该特定项
  • 如何更改属性

    我有一个组件 其中包含一组三个自定义按钮 我想使用这些按钮作为录音机的控件 我陷入了第一阶段 我想根据按钮的功能更改按钮上显示的符号 我试图通过改变他们的方式来实现这一目标xlink href属性 我使用 svg 但在控制台中得到了这个 E
  • 自定义 Spinner TextView 被切断

    因此 在随附的屏幕截图和代码示例中 您可以看到我的自定义微调器 正如你所看到的 无论我尝试做什么 我的文字都会被切断 九个补丁图像设置正确 其上也有文本填充 我几乎拥有一切权利 却完全不知所措 定制旋转器
  • 我可以训练它来检测我的脸吗?或任何其他人面临

    我想创建一个应用程序 在其中捕获我家人的图像并检测它是谁 我可以使用 Vision API 创建云数据库来存储每个家庭成员的不同照片并标记他们的名字 这样当我从 API 提取请求时 它会扫描数据库中的图像并检测它是哪个家庭成员 而不仅仅是检
  • 诺基亚 220 s30+ 开发

    我只是想问我如何为具有 s30 平台的诺基亚 220 开发应用程序 有没有办法为此开发应用程序 看来答案是否定的 尽管名字如此 S30 https en wikipedia org wiki Series 30 2B不相关S30 https
  • PHP 是同步还是异步?

    考虑 这里 getYears 在另一个文件中 它正在获取一个查询 我在用着 list years在文件中view php 这里是同步还是异步 这段代码是程序化的 所以getYears 总是在之前执行require once view php
  • 使用 New-PSDrive 映射网络驱动器时出现问题

    我正在运行一个基于 powershell 的多线程应用程序 其中每个线程 net 任务 需要使用不同的凭据将一堆文件从一台计算机复制到另一台计算机 这是在每个 net 任务中运行的脚本 New PSDrive Name tid PSProv
  • 有没有办法获得 deque 的内部存储大小作为 vector::capacity ?

    据我了解 deque和vector都保留了一些增长空间 vector capacity 能够获取向量的内部保留空间 双端队列标准中没有这样的成员 有什么方法可以获取这些信息吗 您必须深入研究实现才能弄清楚这一点 的版本std dequegc
  • 使用 javascript 代替 Iframe 源?

    我知道我无法从浏览器中隐藏 iframe 源 检查元素 但我想通过使用 javascript 作为源 url 使 它们 难以窃取 url iframe 如果我有 我可以改变吗 www youtube com embed xxxxxxx用Ja
  • 以编程方式更改中心 X / Y 对齐约束的乘数

    如何以最简单的方式以编程方式更改乘数 对于斯威夫特 2 0 因此 对于 Y 如果将图像的顶部设置为等于 superView 的顶部 常量为 0 然后输入此代码 IBOutlet weak var topc NSLayoutConstrain
  • BPEL 中的 Restful Web 服务调用

    我的问题是 有没有什么方法可以让我在 BPEL 中使用 Google Map 或 Youtube 等静态 Web 服务 我知道 BPEL 可与具有 WSDL 文件的 SOAP Web 服务配合使用 但是 我要求做一个项目 其中应包含与 BP
  • Django 存储网站内容

    我对网络开发有点陌生 并且无法理解网站内容的存储方式 即使在查看了开源项目之后 我仍然感到困惑 假设我有一个包含多个段落的网页 我希望最终能够通过 Django 管理页面进行编辑 现在 我已经为页面设置了视图 但我不确定模型应该如何构建 到
  • 如何使用 CloudKit.js 查询 nil 值?

    使用 CloudKit js 如何构建匹配字段为零的项目的查询 我尝试过的每个排列都会失败 要么它明显匹配字符串值 即 null 或 nil 要么如果我实际上尝试传递 null 它会抛出错误 有任何想法吗 以下均无效 filterBy fi
  • 异步加载 iframe

    我有一个网页指向另一个网站 我不希望这阻止页面其余部分的加载 有没有办法异步加载它 使用 jQuery 可以实现以下效果 where url是一些网址
  • Windows 10 - 自定义协议在通过其他方法工作时从 JavaScript 调用时失败

    我成功地在注册表中定义了一个自定义协议 名为FDMyAlbsIF 该协议旨在调用批处理文件 根据接收到的参数执行不同的操作 我现在面临两个问题 通过 Windows 资源管理器调用协议时 即在路径字段中输入字符串FDMyAlbsIF AAA
  • 如何提高从 2 个表中进行选择的 SQL 查询的性能

    请帮我 如何加快这个sql查询 SELECT pa FROM ParametrickeVyhladavanie pa SELECT p FROM produkty p WHERE p KATEGORIA IN categoryArray p
  • ASP.NET Core 2.1根据DB中的数据在布局中插入CSS

    我有一个正在努力解决的问题 一些背景 用户可以在我的应用程序中选择应用程序使用哪种配色方案 此选择存储在数据库中 我想做的是基于这个选择 在页面加载时 为用户所做的选择提供 CSS 文件 我一直在尝试做的是通过在 Layout cshtml
  • spring cloud aws多个sqs监听器

    我的项目中有2个sqs监听器 我希望其中之一具有相同的设置 而其中之一具有不同的设置 我想要更改的唯一值是 maxNumberOfMessages 最实用的方法是什么 我想为其中一个侦听器设置不同的 maxNumberOfMessages