从单个SQSListener收听多个AWS SQS

问题描述 投票:1回答:1

我有一个springboot应用程序,其中sqslistener配置为侦听一个队列,如下所示-

@SqsListener(value="${sqs.name}", deletionPolicy=SqsMessageDeletionPolicy.NEVER)
public void listen(Request request, Acknowledgment ack) {
logger.info("Message received {}",request);
    try {
        ack.acknowledge().get();
        logger.info("Deleted message"); 
    } catch (InterruptedException | ExecutionException e) {
        logger.error("Failed to delete message from the queue");
    }
    logger.info("Message processed.");
}

但是,我必须更改此设置以侦听2个不同的队列。首先,侦听器应侦听第一个队列,如果未找到消息,则应侦听第二个队列。

是否可以使用相同的侦听器?如果没有,那么实现这一点的任何想法都是有帮助的。

spring-boot spring-cloud amazon-sqs
1个回答
0
投票
是否可以使用相同的侦听器?如果没有,那么实现这一点的任何想法都会有所帮助。

否,对于两个不同的队列,不可能有相同的侦听器。

首先,侦听器应侦听第一个队列,如果未找到消息,则应侦听第二个队列。

如果队列中没有消息,则正在监听该队列的侦听器将不会收到任何“输入”,因此您不必担心这种情况。

如果没有,实现此目的的任何想法都是有帮助的

您必须实现两个不同的侦听器以分别侦听QueueA和QueueB

© www.soinside.com 2019 - 2024. All rights reserved.