如何使用 Amazon SQS Spring 云注释 @SqsListener 轮询特定数量的消息

Posted

技术标签:

【中文标题】如何使用 Amazon SQS Spring 云注释 @SqsListener 轮询特定数量的消息【英文标题】:How to Poll for a specific number of messages using Amazon SQS Springn cloud annotation @SqsListener 【发布时间】:2020-09-01 18:05:21 【问题描述】:

需要:一次轮询/收听10条消息(具体计数不基于轮询时间) 现有代码库默认使用基于时间的 spring cloud aws 消息轮询。 现在需要根据消息数进行轮询。

寻找与以下代码类似的基于注释的配置方法

@SqsListener(value = "xxx-sqs",deletionPolicy = ON_SUCCESS)
public void auditProcessor(String json) throws IOException 
    log.info("*********** Inside Listner***********");
    log.info("JSON Data "+json);

对此的任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

从SQS请求的消息数量可以是configured in SimpleMessageListenerContainerFactory。

话虽如此,SQS 的工作方式是,即使您请求 10 条消息,也无法保证即使队列中有更多消息,您也会得到 10 条消息。您只能确定不会超过 10 个。

【讨论】:

以上是关于如何使用 Amazon SQS Spring 云注释 @SqsListener 轮询特定数量的消息的主要内容,如果未能解决你的问题,请参考以下文章

Amazon SQS java sdk 在使用 500 条消息后停止

如何将Amazon SQS与Dynamodb集成

SimpleMessageListenerContainer Amazon SQS Pollinterval

Amazon SQS 如何控制重试次数

探索 Amazon SQS 的架构

如何真正快速地从 Amazon SQS(简单队列服务)队列中删除事件?