JmsListener 和 SQS

JmsListener and SQS

我正在使用 spring 和 org.springframework.jms.annotation.JmsListenerConfigurer

配置 JMS

我正在使用亚马逊的 SQS:

amazonSQS().createQueue(queueRequest).getQueueUrl(); endpoint.setMessageListener(agentActionListener());

我有一个用例,其中我有 相同的 消息格式,但我需要一个 DelaySeconds 为 60 的队列,另一个没有延迟的队列立即。

Amazon 的 SDK 提供了一个消息计时器,因此您可以在单个消息上设置延迟,而不是在队列本身上指定延迟,但遗憾的是 Spring 不支持此功能 (https://github.com/spring-cloud/spring-cloud-aws/issues/101)。

我的问题很简单:

鉴于我使用的是通用消息格式,唯一的区别是一个队列配置为使用延迟,我可以使用相同的 JMS 侦听器来处理两个队列吗?

onMessage 逻辑相同。我只是想确保 JMS 端没有一些限制。

提前致谢。

Given that I am using a common message format and the only difference is that one queue is configured to use a delay, can I use the same JMS listener to handle both queue's ?

您需要配置两个消息侦听器,以便它们可以同时处理消息,并且您需要将 onmessage 逻辑移动到一个公共处理程序(以重用相同的代码)。

两个消息侦听器重用相同的逻辑,但并行运行。