我有一个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个不同的队列。首先,侦听器应侦听第一个队列,如果未找到消息,则应侦听第二个队列。
是否可以用同一听众来做? 如果没有,那么实现此目的的任何想法都是有帮助的。
答案 0 :(得分:0)
是否可以用同一听众来做?如果没有,那么实现此目的的任何想法都是有帮助的。
否,对于两个不同的队列,不可能有相同的侦听器。
首先,侦听器应侦听第一个队列,如果未找到消息,则应侦听第二个队列。
如果队列中没有消息,则正在监听该队列的侦听器将不会收到任何“输入”,因此您不必担心这种情况。
否则,任何实现此目的的想法都是有帮助的
您必须实现两个不同的侦听器才能分别侦听QueueA和QueueB